数据可视化之matplotlib绘制饼状图

简介: 数据可视化之matplotlib绘制饼状图常常为Python的数据可视化而痴迷,将数据进行可视化只需要掌握相关库的方法使用即可。流水线式的库式调用实现正是显示python强大的库的功能。我们可以绘制各种各样的数据图样式,对于数据的反应更加直观而准确。

数据可视化之matplotlib绘制饼状图


常常为Python的数据可视化而痴迷,将数据进行可视化只需要掌握相关库的方法使用即可。流水线式的库式调用实现正是显示python强大的库的功能。我们可以绘制各种各样的数据图样式,对于数据的反应更加直观而准确。


❤️ 下面我们来对绘制饼图的方法进行简单的展示

我们来看代码


所要用到的函数或参数说明
pie 函数格式说明
pie 函数格式
def pie(x, explode=None, labels=None, colors=None, autopct=None,
        pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=None,
        radius=None, counterclock=True, wedgeprops=None, textprops=None,
        center=(0, 0), frame=False, rotatelabels=False, hold=None, data=None)


pie函数的参数详解
x       :(每一块)的比例,如果sum(x) > 1会使用sum(x)归一化;
labels  :(每一块)饼图外侧显示的说明文字;
explode :(每一块)离开中心距离;
startangle :起始绘制角度,默认图是从x轴正方向逆时针画起,如设定=90则从y轴正方向画起;
shadow  :在饼图下面画一个阴影。默认值:False,即不画阴影;
labeldistance :label标记的绘制位置,相对于半径的比例,默认值为1.1, 如<1则绘制在饼图内侧;
autopct :控制饼图内百分比设置,可以使用format字符串或者format function
        '%1.1f'指小数点前后位数(没有用空格补齐);
pctdistance :类似于labeldistance,指定autopct的位置刻度,默认值为0.6;
radius  :控制饼图半径,默认值为1;
counterclock :指定指针方向;布尔值,可选参数,默认为:True,即逆时针。将值改为False即可改为顺时针。
wedgeprops :字典类型,可选参数,默认值:None。参数字典传递给wedge对象用来画一个饼图。例如:wedgeprops={'linewidth':3}设置wedge线宽为3。
textprops :设置标签(labels)和比例文字的格式;字典类型,可选参数,默认值为:None。传递给text对象的字典参数。
center :浮点类型的列表,可选参数,默认值:(0,0)。图标中心位置。
frame :布尔类型,可选参数,默认值:False。如果是true,绘制带有表的轴框架。
rotatelabels :布尔类型,可选参数,默认为:False。如果为True,旋转每个label到指定的角度。


废话不多说,我们直接来进行代码实例


import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
labels = ['娱乐','育儿','饮食','房贷','交通','其它']
sizes = [1,4,5,8,13,14]
explode = [0,0,0,0,0.1,0]
plt.pie(sizes,explode=explode,labels=labels,autopct='%1.1f%%',shadow=False,startangle=150)
plt.title('饼图数据可视化')
plt.show()


我们来看实现测试结果



短短的几行代码就实现了这样的饼图绘制。下面我们对主要的一些方法或参数进行说明。


首先我们来看这行 plt.rcParams[‘font.sans-serif’]=[‘SimHei’]

我们这里是用来正常显示中文标签的,那这个到底是何缘由。刨根问底。


在作图时是无法正常显示中文的,如果你没有这样指定,那么凡是汉字就会显示为小方块。但是,matplotlib是支持unicode,那么为何还是无法显示正常的汉字呢?

那么刨根问底,就要打开它的配置文件,你可以去找到它的matplotlib的库文件,找到配置文件。



我的这个配置文件在D:\python\Lib\site-packages\matplotlib\mpl-data

读者可以参照并根据自己的情况来查找配置文件


较为详细的解释请点击这里

Python matplotlib绘制图片汉字不能正常显示问题


将饼图变为长宽相等的饼图


import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
labels = ['娱乐','育儿','饮食','房贷','交通','其它']
sizes = [1,4,5,8,13,14]
explode = [0,0,0,0,0.1,0]
plt.pie(sizes,explode=explode,labels=labels,autopct='%1.1f%%',shadow=False,startangle=150)
plt.title('饼图数据可视化')
plt.axis('equal')
plt.show()



给饼图添加文本标题


plt.text(1,1,'by jgdabc')



饼图的各个参数应用举例


1:x,指定每一块饼图所占的比例


sizes = [10,20,30,40]



2:labels : 指定每一块饼图外面的文字


labels = ['娱乐','育儿','饮食','房贷']


3:explode :指定每一块饼图距离中心的位置,如果默认为0,就是在中心,如果大于0,就是分离出来


ecplode = [0,0,0.1,0]


4:colors:指定每块饼图的颜色


colors = ['r','y','g','b']
plt.pie(sizes,explode=explode,labels=labels,shadow=False,startangle=150,colors=colors)


5:shadow :指定True是否添加阴影,默认为False,即无阴影,True,即显示阴影


plt.pie(sizes,explode=explode,labels=labels,startangle=150,colors=colors,shadow=True)


6:autopct :指定饼图内百分比设置可以使用format字符串或者formar function '%1.1f’指定小数点后保留一位有效数值


plt.pie(sizes,explode=explode,labels=labels,startangle=150,autopct='%1.1f',colors=colors,shadow=True)


保留一位小数点,并增加百分号(%)


plt.pie(sizes,explode=explode,labels=labels,startangle=150,autopct='%1.1f%',colors=colors,shadow=True)


7:startange : 指定开始的角度,默认从x轴正向逆时针旋转


plt.pie(sizes,explode=explode,labels=labels,startangle=45,autopct='%1.1f%%',colors=colors,shadow=True)


8:counterclock : 指定指针的方向;布尔值,可选参数,默认为:True,逆时针。False即为顺时针。


plt.pie(sizes,counterclock=False,explode=explode,labels=labels,startangle=45,autopct='%1.1f%%',colors=colors,shadow=True)


9:labeldistance :指定label绘制位置,当其值<1绘制在饼图内测,默认为1.1


plt.pie(sizes,labeldistance=0.9,counterclock=False,explode=explode,labels=labels,startangle=45,autopct='%1.1f%%',colors=colors,shadow=True)


10:radius : 指定饼图的半径:参数类型为浮点类型,默认为None。如果半径为None,则默认为1。


plt.pie(sizes,radius=1.5,labeldistance=0.9,counterclock=False,explode=explode,labels=labels,startangle=45,autopct='%1.1f%%',colors=colors,shadow=True)


11:pctdistance :指定autopact的位置


plt.pie(sizes,radius=1.5,labeldistance=0.9,counterclock=False,explode=explode,pctdistance=0.5,labels=labels,startangle=45,autopct='%1.1f%%',colors=colors,shadow=True)


12:textprops:指定标签labels的比例和文字的格式,参数类型为字典,可选参数,默认为:None。


plt.pie(textprops={'fontsize':30,'color':'red'},x=sizes,radius=1.5,labeldistance=0.9,counterclock=False,explode=explode,pctdistance=0.5,labels=labels,startangle=45,autopct='%1.1f%%',colors=colors,shadow=True)



其他


1:设置饼图为正圆形


plt.axis('equal')


2:plt.legend():指定添加图例

相关参数


loc =  ''  #位置
 bbox_to_anchor=[, ] # 外边距 上边 右边
 ncol=   #分列
 borderaxespad =   #图例的内边距


plt.legend(loc ='upper right',fontsize = 10,bbox_to_anchor=(1,1),borderaxespad=0.4 )


保存


plt.savefig("D:\\jgdabc饼图.png,dpi = 150,bbox_inches = ''tight")
#dpi 分辨率
#bbox_inches 指定是否紧密


相关文章
|
3月前
|
数据可视化 数据挖掘 Linux
震撼发布!Python数据分析师必学,Matplotlib与Seaborn数据可视化实战全攻略!
在数据科学领域,数据可视化是连接数据与洞察的桥梁,能让复杂的关系变得直观。本文通过实战案例,介绍Python数据分析师必备的Matplotlib与Seaborn两大可视化工具。首先,通过Matplotlib绘制基本折线图;接着,使用Seaborn绘制统计分布图;最后,结合两者在同一图表中展示数据分布与趋势,帮助你提升数据可视化技能,更好地讲述数据故事。
60 1
|
1月前
|
移动开发 数据可视化 数据挖掘
利用Python实现数据可视化:以Matplotlib和Seaborn为例
【10月更文挑战第37天】本文旨在引导读者理解并掌握使用Python进行数据可视化的基本方法。通过深入浅出的介绍,我们将探索如何使用两个流行的库——Matplotlib和Seaborn,来创建引人入胜的图表。文章将通过具体示例展示如何从简单的图表开始,逐步过渡到更复杂的可视化技术,帮助初学者构建起强大的数据呈现能力。
|
2月前
|
数据可视化 数据挖掘 API
Python中的数据可视化利器:Matplotlib与Seaborn对比解析
在Python数据科学领域,数据可视化是一个重要环节。它不仅帮助我们理解数据,更能够让我们洞察数据背后的故事。本文将深入探讨两种广泛使用的数据可视化库——Matplotlib与Seaborn,通过对比它们的特点、优劣势以及适用场景,为读者提供一个清晰的选择指南。无论是初学者还是有经验的开发者,都能从中找到有价值的信息,提升自己的数据可视化技能。
145 3
|
2月前
|
数据可视化 定位技术 Python
Python数据可视化--Matplotlib--入门
Python数据可视化--Matplotlib--入门
31 0
|
3月前
|
数据可视化 数据挖掘 开发者
数据可视化新纪元!Python + Matplotlib + Seaborn,让你的数据故事生动起来!
在这个数据可视化的新纪元,让我们充分发挥 Python 的优势,用精彩的图表讲述数据背后的故事,为决策提供有力的支持,为交流带来清晰的视角。
36 4
|
3月前
|
数据可视化 Python
Python中的数据可视化:使用Matplotlib绘制图表
【9月更文挑战第11天】在这篇文章中,我们将探索如何使用Python的Matplotlib库来创建各种数据可视化。我们将从基本的折线图开始,然后逐步介绍如何添加更多的功能和样式,以使您的图表更具吸引力和信息量。无论您是数据科学家、分析师还是任何需要将数据转化为视觉形式的专业人士,这篇文章都将为您提供一个坚实的起点。让我们一起潜入数据的海洋,用视觉的力量揭示其背后的故事。
64 16
|
3月前
|
机器学习/深度学习 数据可视化 数据挖掘
数据可视化大不同!Python数据分析与机器学习中的Matplotlib、Seaborn应用新视角!
在数据科学与机器学习领域,数据可视化是理解数据和优化模型的关键。Python凭借其强大的可视化库Matplotlib和Seaborn成为首选语言。本文通过分析一份包含房屋面积、卧室数量等特征及售价的数据集,展示了如何使用Matplotlib绘制散点图,揭示房屋面积与售价的正相关关系;并利用Seaborn的pairplot探索多变量间的关系。在机器学习建模阶段,通过随机森林模型展示特征重要性的可视化,帮助优化模型。这两个库在数据分析与建模中展现出广泛的应用价值。
57 2
|
3月前
|
数据可视化 数据挖掘 API
使用Python进行数据可视化:探索Matplotlib和Seaborn库
【9月更文挑战第19天】在数据科学领域,将复杂的数据集转换成直观、易懂的图形是一项基本而关键的技能。本文旨在通过Python编程语言介绍两个强大的数据可视化库——Matplotlib和Seaborn,以及它们如何帮助数据分析师和研究人员揭示数据背后的故事。我们将从基础概念讲起,逐步深入到高级技巧,确保无论读者的背景如何,都能获得必要的知识和启发,以在自己的项目中实现有效的数据可视化。
|
3月前
|
数据可视化 数据挖掘 Python
惊呆了!Python数据分析师如何用Matplotlib、Seaborn秒变数据可视化大师?
在数据驱动时代,分析师们像侦探一样在数字海洋中寻找线索,揭示隐藏的故事。数据可视化则是他们的“魔法棒”,将复杂数据转化为直观图形。本文将带你探索Python数据分析师如何利用Matplotlib与Seaborn这两大神器,成为数据可视化大师。Matplotlib提供基础绘图功能,而Seaborn在此基础上增强了统计图表的绘制能力,两者结合使数据呈现更高效、美观。无论是折线图还是箱形图,这两个库都能助你一臂之力。
49 4
|
3月前
|
机器学习/深度学习 数据采集 监控
Pandas与Matplotlib:Python中的动态数据可视化
Pandas与Matplotlib:Python中的动态数据可视化