离散型变量的可视化之【饼图】****

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)
  1. x:指定绘图的数据。
  2. explode:指定饼图某些部分的突出显示,即呈现爆炸式。
  3. labels:为饼图添加标签说明,类似于图例说明。
  4. colors:指定饼图的填充色。
  5. autopct:自动添加百分比显示,可以采用格式化的方法显示。
  6. pctdistance:设置百分比标签与圆心的距离。
  7. shadow:是否添加饼图的阴影效果。
  8. labeldistance:设置各扇形标签(图例)与圆心的距离。
  9. startangle:设置饼图的初始摆放角度。 radius:设置饼图的半径大小。
  10. counterclock:是否让饼图按逆时针顺序呈现。
  11. wedgeprops:设置饼图内外边界的属性,如边界线的粗细、颜色等。
  12. textprops:设置饼图中文本的属性,如字体大小、颜色等。
  13. center:指定饼图的中心点位置,默认为原点。
  14. frame:是否要显示饼图背后的图框,如果设置为True的话,需要同时控制图框x轴、y轴的范围和饼图的中心位置。

案例代码如下:

import matplotlib.pyplot as pltplt.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参数完成的。另外,还需要对如上饼图的绘制说明几点:

  1. 如果绘制的图形中涉及中文及数字中的负号,都需要通过rcParams进行控制。
  2. 由于不加修饰的饼图更像是一个椭圆,所以需要pyplot模块中的axes函数将椭圆强制为正圆。
  3. 自定义颜色的设置,既可以使用十六进制的颜色,也可以使用具体的颜色名称,如red、black等。
  4. 如果需要添加图形的标题,需要调用pyplot模块中的title函数。
  5. 代码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)
  1. kind:指定一个字符串值,用于绘制图形的类型,默认为折线图
  2. line。还可以绘制垂直条形图bar、水平条形图hbar、直方图hist、箱线图box、核密度图kde、面积图area和饼图pie。
  3. ax:控制当前子图在组图中的位置。例如,在一个2×2的图形矩阵中,通过该参数控制当前图形在矩阵中的位置。
  4. figsize:控制图形的宽度和高度,以元组形式传递,即(width,hright)。
  5. use_index:bool类型的参数,是否将序列的行索引用作x轴的刻度,默认为True。 title:用以添加图形的标题。
  6. grid:bool类型的参数,是否给图形添加网格线,默认为False。
  7. legend:bool类型的参数,是否添加子图的图例,默认为False。
  8. style:如果kind为line,该参数可以控制折线图的线条类型。
  9. logx:bool类型的参数,是否对x轴做对数变换,默认为False。
  10. logy:bool类型的参数,是否对y轴做对数变换,默认为False。
  11. loglog:bool类型的参数,是否同时对x轴和y轴做对数变换,默认为False。
  12. xticks:用于设置x轴的刻度值。
  13. yticks:用于设置y轴的刻度值。
  14. xlim:以元组或列表的形式,设置x轴的取值范围,如(0,3)表示x轴落在0~3的范围之内。
  15. ylim:以元组或列表的形式,设置y轴的取值范围。 rot:接受一个整数值,用于旋转刻度值的角度。
  16. fontsize:接受一个整数,用于控制x轴与y轴刻度值的字体大小。
  17. colormap:接受一个表示颜色含义的字符串,或者Python的色彩映射对象,该参数用于设置图形的区域颜色。
  18. table:该参数如果为True,表示在绘制图形的基础上再添加数据表;如果传递的是序列或数据框,则根据数据添加数据表。
  19. yerr:如果kind为bar或hbar,该参数表示在条形图的基础上添加误差棒。
  20. xerr:含义同yerr参数。
  21. label:用于添加图形的标签。 secondary_y:bool类型的参数,是否添加第二个y轴,默认为False。
  22. **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)相关推荐

  1. Python数据可视化的例子——画图总结

    前面写了大量的文章是关于数据的可视化,通过每一个具体的案例介绍了有关matplotlib模块.pandas模块和seaborn模块的绘图函数和参数含义,分别针对离散型数据.数值型数据和关系型数据讲解了 ...

  2. Python数据可视化01:饼图(扇形统计图)

    底下有投票!!! 01_认识饼图 饼图英文学名为Sector Graph,又名Pie Graph.常用于统计学模块.2D饼图为圆形,手画时,常用圆规作图. 仅排列在工作表的一列或一行中的数据可以绘制到 ...

  3. Python数据可视化的例子——多个图形的合并

    工作中往往会根据业务需求,将绘制的多个图形组合到一个大图框内,形成类似仪表板的效果.针对这种情况,如何应用Python将前面所学的各种图形汇总到一个图表中,这将是本节所要学习的重点. 关于多种图形的组 ...

  4. Python数据可视化的例子——气泡图(bubble)

    (关系型数据的可视化) 气泡图是散点图中的一种类型,可以展现三个数值变量之间的关系 之前的文章有介绍过一般的散点图都是反映两个数值型变量的关系,所以如果还想通过散点图添加第三个数值型变量的信息,一般可 ...

  5. Python数据可视化的例子——箱线图(box)

    箱线图是另一种体现数据分布的图形,通过该图可以得知数据的下须值(Q1-1.5IQR).下四分位数(Q1).中位数(Q2).均值.上四分位数(Q3)和上须值(Q3+1.5IQR),更重要的是,箱线图还可 ...

  6. Python数据可视化的例子——热力图(heatmap)

    (关系型数据的可视化) 热力图体现了两个离散变量之间的组合关系 热力图,有时也称之为交叉填充表.该图形最典型的用法就是实现列联表的可视化,即通过图形的方式展现两个离散变量之间的组合关系.读者可以借助于 ...

  7. Python数据可视化的例子——散点图(scatter)

    (关系型数据的可视化) 散点图用于发现两个数值变量之间的关系 如果需要研究两个数值型变量之间是否存在某种关系,例如正向的线性关系,或者是趋势性的非线性关系,那么散点图将是最佳的选择. 1.matplo ...

  8. Python数据可视化的例子——直方图(hist)和核密度曲线(kde)

    直方图一般用来观察数据的分布形态,横坐标代表数值的均匀分段,纵坐标代表每个段内的观测数量(频数).一般直方图都会与核密度图搭配使用,目的是更加清晰地掌握数据的分布特征,下面将详细介绍该类型图形的绘制. ...

  9. Python数据可视化的例子——条形图(bar)

    1.matplotlib模块 应用matplotlib模块绘制条形图,需要调用bar函数,关于该函数的语法和参数含义如下: bar(x, height, width=0.8, bottom=None, ...

  10. Python数据可视化的例子——小提琴图(violin)

    小提琴图是比较有意思的统计图形,它将数值型数据的核密度图与箱线图融合在一起,进而得到一个形似小提琴的图形.尽管matplotlib模块也提供了绘制小提琴图的函数violinplot,但是绘制出来的图形 ...

最新文章

  1. c语言退格的值是多少,在c语言里enter的键值是多少啊?
  2. 安装apr和tomcat-native优化tomcat
  3. linux下安装php的imagick扩展模块(附php升级脚本)
  4. 微软亚洲研究院谭旭:AI音乐,技术与艺术的碰撞
  5. Oracle日志分类
  6. .NET Core 2将Visual Basic带到了Linux和macOS平台
  7. 怎么挪动_2020蚕茧多少钱一斤,蚕茧怎么做成蚕丝被
  8. Error和Exception(异常)
  9. 数据科学入门与实战:玩转pandas之七数据透视
  10. sql数据表改为自动递增显示与其他表关联_MySQL萌新第一季 第四话-数据表的基本操作...
  11. Docker学习总结(18)——阿里超大规模Docker化之路
  12. 单应性变换(Homography)
  13. 字符集,字体,编码,代码页,输入法
  14. Error launching IEDA-启动IDEA报错解决(创建JVM失败提示)
  15. AI内容生成工具列表,可用于生成 AI 内容的工具列表。具有图像生成、文本生成等功能。
  16. 【激光雷达】之点云数据滤波处理
  17. java 免登录_最简单、稳定的免密登录
  18. WIN10提示没有默认的邮件客户端,或者当前的邮件客户端无法实现该请求,请将outlook设为默认邮件客户端“
  19. 删除电脑属性制造商_win7系统怎么修改系统制造商信息?
  20. windbg调试minidump

热门文章

  1. Codeforces 1062C Banh-mi题解
  2. 不同网段共享文件服务器,不同网段ip 如何设置局域网共享?
  3. tempo jsnode扩展 3d图形支持。
  4. python爬取wifi密码完整代码_WIFIpass – Python获取本机保存的所有WIFI密码(附源代码)...
  5. android camera预览翻转,android camera yuv帧水平翻转实例
  6. linux课程设计tiny6410,Tiny6410开发板上Linux系统的安装
  7. 谨防打黑工丨被“偷走”的实习期
  8. flash spi 野火_野火stm32-SPI
  9. vs2010 正式版官方下载地址
  10. 一、 Vue.js简介