【Python数据分析】如何使用matplotlib和pyecharts制作南丁格尔玫瑰图

这篇具有很好参考价值的文章主要介绍了【Python数据分析】如何使用matplotlib和pyecharts制作南丁格尔玫瑰图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、介绍

二、相关库

三、数据准备

四、pyecahrts代码实现

五、matplotlib代码实现


原文作者:我辈理想
版权声明:文章原创,转载时请务必加上[原文超链接](https://blog.csdn.net/qq_15028721?spm=1010.2135.3001.5421)、作者信息和本声明。

一、介绍

玫瑰图是弗罗伦斯·南丁格尔所发明的。又名为极坐标面积图,是一种圆形的直方图。 南丁格尔自己常昵称这类图为鸡冠花图(coxcomb),适用于绘制比较、随时间变化的循环现象。和传统的饼图展示形式单一相比,南丁格尔玫瑰图更加绚丽,给人的感觉更直观、深刻,因此,南丁格尔玫瑰图在数据可视化领域的应用十分广泛。

文章介绍如何使用python制作玫瑰图,提供了2中方式:pyecharts生成html和matplotlib生成png。数据展示相对容易,中间的空心圆需要根据情况调整。

【Python数据分析】如何使用matplotlib和pyecharts制作南丁格尔玫瑰图

二、相关库

电脑系统:windows

编程语言:python

使用的库:pandas、pyecharts、matplotlib

pyecharts 是一个用于生成 Echarts 图表的类库。Echarts 是百度开源的一个数据可视化 JS 库。用 Echarts 生成的图可视化效果非常棒,pyecharts 是为了与 Python 进行对接,方便在 Python 中直接使用数据生成图。使用pyecharts可以生成独立的网页,也可以在flask、django中集成使用。

Matplotlib是一个Python 2D绘图库,它以多种硬拷贝格式和跨平台的交互式环境生成出版物质量的图形。 Matplotlib可用于Python脚本,Python和IPython (opens new window)Shell、Jupyter (opens new window)笔记本,Web应用程序服务器和四个图形用户界面工具包。Matplotlib 尝试使容易的事情变得更容易,使困难的事情变得可能。 您只需几行代码就可以生成图表、直方图、功率谱、条形图、误差图、散点图等。 更多的示例,请参见基础绘图例子和示例陈列馆。

三、数据准备

数据的格式跟饼图类似,此处采用的是各国疫情累计确诊病例数。文章来源地址https://www.toymoban.com/news/detail-471130.html

疫情地区 累计
美国 178883533
印度 100048254
巴西 71639125
俄罗斯 27912206
法国 24429907
土耳其 19820908
英国 19771679
意大利 19217810
西班牙 181744811
阿根廷 153137412
哥伦比亚 148207213
德国 1469991

四、pyecahrts代码实现

import pandas as pd
from pyecharts.charts import Pie
from pyecharts import options as opts

# 读入数据,需要更改
df = pd.read_excel(r"C:\Users\lpf_a\PycharmProjects\ybt_clan\untitled1\30国.xlsx")
df = df.sort_values("累计")
v = df['疫情地区'].values.tolist()
d = df['累计'].values.tolist()
# 设置颜色
color_series = ['#FAE927', '#E9E416', '#C9DA36', '#9ECB3C', '#6DBC49',
                '#37B44E', '#3DBA78', '#14ADCF', '#209AC9', '#1E91CA',
                '#2C6BA0', '#2B55A1', '#2D3D8E', '#44388E', '#6A368B'
                                                            '#7D3990', '#A63F98', '#C31C88', '#D52178', '#D5225B',
                '#D02C2A', '#D44C2D', '#F57A34', '#FA8F2F', '#D99D21',
                '#CF7B25', '#CF7B25', '#CF7B25']
# 实例化Pie类
pie1 = Pie(init_opts=opts.InitOpts(width='1350px', height='750px'))
# 设置颜色
pie1.set_colors(color_series)
# 添加数据,设置饼图的半径,是否展示成南丁格尔图
pie1.add("222", [list(z) for z in zip(v, d)],
         radius=["15%", "100%"],
         center=["50%", "60%"],
         rosetype="area"
         )
# 设置全局配置项
pie1.set_global_opts(title_opts=opts.TitleOpts(title='玫瑰图示例'),
                     legend_opts=opts.LegendOpts(is_show=False),
                     toolbox_opts=opts.ToolboxOpts())
# 设置系列配置项
pie1.set_series_opts(label_opts=opts.LabelOpts(is_show=True, position="inside", font_size=12,
                                               formatter="{b}:{c}例", font_style="italic",
                                               font_weight="bold", font_family="Microsoft YaHei"
                                               ),
                     )
# 生成html文档
pie1.render("南丁格尔玫瑰图.html")

五、matplotlib代码实现


# 1.中文
matplotlib.rcParams['font.sans-serif'] = ['simsun']  # 显示字体为宋体

# 2.数据
df = pd.read_excel(r"C:\Users\lpf_a\PycharmProjects\ybt_clan\untitled1\30国.xlsx")
df = df.sort_values("累计")
p = df['疫情地区'].values.tolist()
r = df['累计'].values.tolist()

# 3.画图
fig = plt.figure(figsize=(10, 6),  # 画布大小
                 dpi=400,  # 分辨率
                 facecolor='lightyellow',  # 背景色
                 )
# 4.
ax = plt.axes(polar=True)  # 实例化极坐标系
# ax = plt.subplot(111, projection="polar")  # polar 投影(扫描方式,自正北方向顺时针)
ax.set_theta_zero_location("N")  # 极坐标 0° 方向为 N
ax.set_theta_direction(-1)  # 顺时针为极坐标正方向
theta = np.linspace(0, np.pi * 2, len(r), endpoint=False)  # 等分极坐标系
# 5.添加饼图
ax.bar(x=theta,  # 柱体的角度坐标
       height=r,  # 柱体的高度, 半径坐标
       width=np.pi / 6,  # 柱体的宽度  np.pi / 6
       color=np.random.random((len(r), 3)),  # 随机产生颜色
       align="edge")  # 原理圆心,设置偏离距离

# 绘制中心空白
ax.bar(x=theta,  # 柱体的角度坐标
       height=13000000,  # 柱体的高度, 半径坐标
       width=np.pi / 6,  # 柱体的宽度
       color='white')
# 标注
ax.set_title('感染累计', fontdict={'fontsize': 20})
for angle, height, text in zip(theta, r, p):
    ax.text(angle + 0.25, height + 120, str(text), fontsize=9)  # 设置显示文本的位置以及字体大小

plt.axis("off")
plt.savefig("南丁格尔图.png")
plt.show()

到了这里,关于【Python数据分析】如何使用matplotlib和pyecharts制作南丁格尔玫瑰图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 头歌平台python数据分析——(9)Matplotlib图形配置

    ,根据输入数据绘制热成像图并隐藏坐标轴,具体要求如下: 图形的figsize为(10, 10); 图形保存到Task1/img/T1.png。 根据函数参数file_name读取文件,统计每年births的总和并作折线图,为最高/最低出生数年份设置注释,具体要求如下: 对数据进行去空值处理; 注释文字的坐标位置

    2024年02月10日
    浏览(158)
  • 银行营销数据分析---Python(numpy、pandas、matplotlib)

    数据来源:kaggle银行营销数据 工具:Python、Jupyter Notebook 本项目采取的是kaggle银行营销的数据源,主要是预测客户是否会订购银行的产品,但是,这次我将 使用numpy、pandas、matplotlib数据分析三件套,基于源数据,深入分析影响银行三大业务—存款、贷款、营销产品的因素 ,

    2024年02月07日
    浏览(58)
  • python数据分析学习笔记之matplotlib、numpy、pandas

    为了学习机器学习,在此先学习以下数据分析的matplotlib,numpy,pandas,主要是为自己的学习做个记录,如有不会的可以随时查阅。希望大家可以一起学习共同进步,我们最终都可以说:功不唐捐,玉汝于成。就算遇到困难也不要气馁,大声说:我不怕,我敏而好学!! 把大量

    2024年02月08日
    浏览(59)
  • python中的matplotlib画饼图(数据分析与可视化)

    1、先安装pandas和matplotlib 2、然后在py文件中导入 3、然后直接写代码 效果图(有图有真相): 结束,不用谢!

    2024年02月13日
    浏览(56)
  • python-数据分析-numpy、pandas、matplotlib的常用方法

    输出方式不同 里面包含的元素类型 使用 索引/切片 访问ndarray元素 切片 左闭右开 np.array(list) np.arange() np.random.randn() - - - 服从标准正态分布- - - 数学期望 μ - - - 标准方差 s 使用matplotlib.pyplot模块验证标准正态分布 np.random.randint(起始数,终止数(行,列)) 数据分析 - - - 数据清洗

    2024年02月10日
    浏览(99)
  • python中的matplotlib画散点图(数据分析与可视化)

    python中的matplotlib画散点图(数据分析与可视化) 效果图: 结束,再见

    2024年02月11日
    浏览(47)
  • python中的matplotlib画折线图(数据分析与可视化)

    先导包(必须安装了numpy 、pandas 和matplotlib才能导包): 核心代码: 效果图: 已完成,再见。

    2024年02月11日
    浏览(46)
  • python中的matplotlib画直方图(数据分析与可视化)

    python中的matplotlib画直方图(数据分析与可视化) 效果图: 搞定,这只是一个小demo,数据是代码生成的,您的数据可以从其他地方获取。照葫芦画瓢。

    2024年02月11日
    浏览(51)
  • python数据分析-matplotlib散点图-条形图的绘制以及完整方法归纳02

    散点图的绘制使用的是scatter()方法,传入的参数也是两个列表,分别为x,y坐标轴的值使用散点图可以显示若干数列序列中各数值之间是否存在相关性. 1.导入模块 from matplotlib import pyplot as plt import matplotlib 2.设置散点图所有字符的字体样式 matplotlib.rcParams[‘font.family’] = ‘Microsof

    2023年04月11日
    浏览(47)
  • 如何使用Python进行数据分析?

    要使用Python进行数据分析,可以按照以下步骤进行: 安装Python:首先,你需要安装Python解释器。可以从Python官方网站下载并安装适合你操作系统的Python版本。 安装数据分析库:Python有许多强大的数据分析库,如NumPy、Pandas和Matplotlib。使用pip命令或包管理工具安装这些库。 导

    2024年02月10日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包