离散型变量的可视化之【饼图】****
1、matplotlib模块
pie函数的语法和参数含义如下:
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)
- x:指定绘图的数据。
- explode:指定饼图某些部分的突出显示,即呈现爆炸式。
- labels:为饼图添加标签说明,类似于图例说明。
- colors:指定饼图的填充色。
- autopct:自动添加百分比显示,可以采用格式化的方法显示。
- pctdistance:设置百分比标签与圆心的距离。
- shadow:是否添加饼图的阴影效果。
- labeldistance:设置各扇形标签(图例)与圆心的距离。
- startangle:设置饼图的初始摆放角度。 radius:设置饼图的半径大小。
- counterclock:是否让饼图按逆时针顺序呈现。
- wedgeprops:设置饼图内外边界的属性,如边界线的粗细、颜色等。
- textprops:设置饼图中文本的属性,如字体大小、颜色等。
- center:指定饼图的中心点位置,默认为原点。
- frame:是否要显示饼图背后的图框,如果设置为True的话,需要同时控制图框x轴、y轴的范围和饼图的中心位置。
案例代码如下:
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['Microsoft YaHei'] #显示中文标签,处理中文乱码问题
plt.rcParams['axes.unicode_minus']=False #坐标轴负号的处理
plt.axes(aspect='equal') #将横、纵坐标轴标准化处理,确保饼图是一个正圆,否则为椭圆
#构造数据
edu = [0.2515, 0.3724, 0.3336, 0.0368, 0.0057]
labels = ['中专','大专','本科','硕士','其他']
explode = [0, 0.1, 0, 0, 0] #生成数据,用于凸显大专学历人群
colors = ['#9999ff', '#ff9999', '#7777aa', '#2442aa', '#dd5555'] #自定义颜色
plt.pie(x=edu, #绘图数据
explode=explode, #指定饼图某些部分的突出显示,即呈现爆炸式
labels=labels, #添加教育水平标签
colors=colors,
autopct='%.2f%%', #设置百分比的格式,这里保留两位小数
pctdistance=0.8, #设置百分比标签与圆心的距离
labeldistance=1.1, #设置教育水平标签与圆心的距离
startangle=180, #设置饼图的初始角度
radius=1.2, #设置饼图的半径
counterclock=False, #是否逆时针,这里设置为顺时针方向
wedgeprops={
'linewidth':1.5, 'edgecolor':'green'}, #设置饼图内外边界的属性值
textprops={
'fontsize':10, 'color':'black'}, #设置文本标签的属性值
)
#添加图标题
plt.title('失信用户的受教育水平分布')
#显示图形
plt.show()
出来的效果:
饼图中突出显示大专学历的人群,是因为在这300万失信人群中,大专学历的人数比例最高,该功能就是通过explode参数完成的。另外,还需要对如上饼图的绘制说明几点:
- 如果绘制的图形中涉及中文及数字中的负号,都需要通过rcParams进行控制。
- 由于不加修饰的饼图更像是一个椭圆,所以需要pyplot模块中的axes函数将椭圆强制为正圆。
- 自定义颜色的设置,既可以使用十六进制的颜色,也可以使用具体的颜色名称,如red、black等。
- 如果需要添加图形的标题,需要调用pyplot模块中的title函数。
- 代码plt.show()用来呈现最终的图形,无论是使用Jupyter或Pycharm编辑器,都需要使用这行代码呈现图形。
2、pandas模块
应用pandas模块的绘图“方法”plot。
该方法可以针对序列和数据框绘制常见的统计图形,例如折线图、条形图、直方图、箱线图、核密度图等。同样,plot也可以绘制饼图,接下来简单介绍一下该方法针对序列的应用和参数含义:
Series.plot(kind='line', ax=None, figsize=None, use_index=True, title=None,
grid=None, legend=False, style=None, logx=False, logy=False,
loglog=False, xticks=None, yticks=None, xlim=None, ylim=None,
rot=None, fontsize=None, colormap=None, table=False, yerr=None,
xerr=None, label=None, secondary_y=False, **kwds)
- kind:指定一个字符串值,用于绘制图形的类型,默认为折线图
- line。还可以绘制垂直条形图bar、水平条形图hbar、直方图hist、箱线图box、核密度图kde、面积图area和饼图pie。
- ax:控制当前子图在组图中的位置。例如,在一个2×2的图形矩阵中,通过该参数控制当前图形在矩阵中的位置。
- figsize:控制图形的宽度和高度,以元组形式传递,即(width,hright)。
- use_index:bool类型的参数,是否将序列的行索引用作x轴的刻度,默认为True。 title:用以添加图形的标题。
- grid:bool类型的参数,是否给图形添加网格线,默认为False。
- legend:bool类型的参数,是否添加子图的图例,默认为False。
- style:如果kind为line,该参数可以控制折线图的线条类型。
- logx:bool类型的参数,是否对x轴做对数变换,默认为False。
- logy:bool类型的参数,是否对y轴做对数变换,默认为False。
- loglog:bool类型的参数,是否同时对x轴和y轴做对数变换,默认为False。
- xticks:用于设置x轴的刻度值。
- yticks:用于设置y轴的刻度值。
- xlim:以元组或列表的形式,设置x轴的取值范围,如(0,3)表示x轴落在0~3的范围之内。
- ylim:以元组或列表的形式,设置y轴的取值范围。 rot:接受一个整数值,用于旋转刻度值的角度。
- fontsize:接受一个整数,用于控制x轴与y轴刻度值的字体大小。
- colormap:接受一个表示颜色含义的字符串,或者Python的色彩映射对象,该参数用于设置图形的区域颜色。
- table:该参数如果为True,表示在绘制图形的基础上再添加数据表;如果传递的是序列或数据框,则根据数据添加数据表。
- yerr:如果kind为bar或hbar,该参数表示在条形图的基础上添加误差棒。
- xerr:含义同yerr参数。
- label:用于添加图形的标签。 secondary_y:bool类型的参数,是否添加第二个y轴,默认为False。
- **kwds:关键字参数,该参数可以根据不同的kind值,为图形添加更多的修饰性参数(依赖于pyplot中的绘图函数)。
pandas模块中的plot“方法”可以根据kind参数绘制不同的统计图形,而且也包含了其他各种灵活的参数。除此,根据不同的kind参数值,可以调用更多对应的关键字参数**kwds,这些关键字参数都源于pyplot中的绘图函数。
案例代码如下:
import pandas as pd
import matplotlib.pyplot as plt
#构建序列
data1 = pd.Series({
'中专':0.2515, '大专':0.3724, '本科':0.3336, '硕士':0.0368, '其他':0.0057})
#将序列的名称设置为空字符,否则绘制的饼图左边会出现None这样的字眼
data1.name = ''
#控制饼图为正圆
plt.axes(aspect = 'equal')
#防止中文乱码
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
#plot方法对序列进行绘图
data1.plot(kind = 'pie', #选择图形类型
autopct = '%.2f%%', #饼图中添加数值标签
radius = 1, #设置饼图半径
startangle = 180, #设置饼图的初始角度
counterclock = False, #将饼图的顺序设置为顺时针方向
title = '失信用户的受教育水平分布', #为饼图添加标题
wedgeprops = {
'linewidth':1.5, 'edgecolor':'green'}, #设置饼图内外边界的属性值
textprops = {
'fontsize':10, 'color':'black'}, #设置文本标签的属性值
)
#显示图形
plt.show()
出来的效果:
应用pandas模块中的plot方法,也可以得到一个比较好看的饼图。该方法中除了kind参数和title参数属于plot方法,其他参数都是pyplot模块中pie函数的参数,并且以关键字参数的形式调用。
今天的文章Python数据可视化的例子——饼图(pie)分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/58224.html