博客
关于我
Python_matplotlib库绘制02(柱状图,饼状图)
阅读量:732 次
发布时间:2019-03-21

本文共 3464 字,大约阅读时间需要 11 分钟。

Matplotlib 绘图技巧:从柱状图到饼状图

Matplotlib 是一个强大的绘图库,支持多种类型的图表绘制,包括柱状图、饼状图、条形图等。在本文中,我们将逐步学习如何使用 Matplotlib 进行数据可视化。


柱状图

1. 简单柱状图

柱状图是最常用的数据可视化工具之一。下面是一个简单的柱状图示例:

import matplotlib.pyplot as pltnum_list = [1, 5, 6.5, 8, 11]plt.bar(range(len(num_list)), num_list)plt.title("数据分布")plt.xlabel("x轴")plt.ylabel("y轴")plt.show()

2. 改变柱状图颜色

为了更直观地展示数据,可以通过设置颜色来区分不同柱状图:

import matplotlib.pyplot as pltnum_list = [1, 5, 6.5, 8, 11]plt.bar(range(len(num_list)), num_list, color='rgbcy')plt.title("数据分布")plt.xlabel("x轴")plt.ylabel("y轴")plt.show()

3. 设置柱状图标签

为柱状图添加标签,使图表更加用户友好:

import matplotlib.pyplot as pltnum_list = [1, 5, 6.5, 8, 11]name_list = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']plt.bar(range(len(num_list)), num_list, color='rgbcy', tick_label=name_list)plt.title("数据分布")plt.xlabel("x轴")plt.ylabel("y轴")plt.show()

4. 堆叠柱状图

当需要同时比较多个数据系列时,可以使用堆叠柱状图:

import matplotlib.pyplot as pltnum_list = [1, 5, 6, 8, 11]num_list2 = [2, 3, 5, 1, 4]name_list = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']plt.bar(range(len(num_list)), num_list, color='b', tick_label=name_list, label='男')plt.bar(range(len(num_list)), num_list2, color='g', tick_label=name_list, label='女', bottom=num_list)plt.title("数据分布")plt.xlabel("x轴")plt.ylabel("y轴")plt.legend(loc='best')plt.show()

5. 横向条形图

如果想在水平方向展示数据,可以使用横向条形图:

import matplotlib.pyplot as pltnum_list = [1, 5, 6, 8, 11]num_list2 = [2, 3, 5, 1, 4]name_list = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']plt.barh(range(len(num_list)), num_list, color='b', tick_label=name_list, label='男')plt.barh(range(len(num_list)), num_list2, color='g', tick_label=name_list, label='女', left(num_list))plt.title("数据分布")plt.xlabel("x轴")plt.ylabel("y轴")plt.legend(loc='best')plt.show()

并列柱状图

1. 数据准备

为了制作并列柱状图,可以将每个柱子水平拉宽:

import matplotlib.pyplot as pltnum_list = [1, 5, 6.5, 8, 11]num_list2 = [2, 3, 5, 1, 4]name_list = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']x = list(range(len(num_list)))total_width = 0.8n = 2  #柱子数量width = total_width / n

2. 绘制并列柱状图

plt.bar(x, num_list, label='男', width=width)for i in range(len(x)):    x[i] = x[i] + widthplt.bar(x, num_list2, tick_label=name_list, label='女', width=width)plt.title("数据分布")plt.xlabel("x轴")plt.ylabel("y轴")plt.legend(loc='best')plt.show()

饼状图

1. 简单饼状图

饼状图适合展示不同部分所占的比例。以下是一个简单的饼状图示例:

import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei']  # 正常显示中文sizes = [10, 30, 20, 40]labels = ['A', 'B', 'C', 'D']plt.pie(sizes, labels=labels)plt.title("饼状图")plt.legend(loc='best')plt.show()

2. 饼状图到中心距离

要使饼状图的某一部分距离中心,可以设置 explode 参数:

import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei']sizes = [10, 30, 20, 40]labels = ['A', 'B', 'C', 'D']explode = (0, 0.1, 0.2, 0.1)plt.pie(sizes, labels=labels, explode=explode)plt.title("饼状图")plt.legend(loc='best')plt.show()

3. 设置饼状图颜色

你可以通过 colors 参数为饼状图添加颜色:

import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei']sizes = [10, 30, 20, 40]labels = ['A', 'B', 'C', 'D']colors = ['r', 'g', 'y', 'b']plt.pie(sizes, labels=labels, colors=colors)plt.title("饼状图")plt.legend(loc='best')plt.show()

4. 显示百分比

如果需要显示百分比,可以使用 autopct 参数:

import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei']sizes = [10, 30, 20, 40]labels = ['A', 'B', 'C', 'D']colors = ['r', 'g', 'y', 'b']plt.pie(sizes, labels=labels, colors=colors, autopct='%1.2f%%')plt.title("饼状图")plt.legend(loc='best')plt.show()

以上就是从简单柱状图到饼状图的 Matplotlib 绘图技巧总结。如果你有任何问题或需要进一步的帮助,欢迎在评论区留言!

转载地址:http://mzagz.baihongyu.com/

你可能感兴趣的文章
OSG学习:纹理映射(一)——多重纹理映射
查看>>
OSG学习:纹理映射(二)——一维/二维/简单立方图纹理映射
查看>>
OSG学习:纹理映射(六)——灯光
查看>>
OSPF 四种设备角色:IR、ABR、BR、ASBR
查看>>
OSPF不能发现其他区域路由时,该怎么办?
查看>>
SQL Server 存储过程
查看>>
OSPF在大型网络中的应用:高效路由与可扩展性
查看>>
OSPF技术连载18:OSPF网络类型:非广播、广播、点对多点、点对多点非广播、点对点
查看>>
OSPF技术连载21:OSPF虚链路,现代网络逻辑连接的利器!
查看>>
paddlehub安装及对口罩检测
查看>>
paddle的两阶段基础算法基础
查看>>
SpringBoot中重写addCorsMapping解决跨域以及提示list them explicitly or consider using “allowedOriginPatterns“ in
查看>>
pageHelper分页工具的使用
查看>>
PageHelper:上手教程(最详细)
查看>>
PageOffice如何实现从零开始动态生成图文并茂的Word文档
查看>>
Paint类(画笔)
查看>>
Palo Alto Networks PAN-OS身份认证绕过导致RCE漏洞复现(CVE-2024-0012)
查看>>
Panalog 日志审计系统 libres_syn_delete.php 前台RCE漏洞复现
查看>>
Panalog 日志审计系统 sprog_deletevent.php SQL 注入漏洞复现
查看>>
pandas :将时间戳转换为 datetime.date
查看>>