首页 > 其他分享 >(5-1)绘制饼状图:绘制基本的饼状图(绘制简易的饼状图+修饰饼状图+突出显示某个饼状图的部分)

(5-1)绘制饼状图:绘制基本的饼状图(绘制简易的饼状图+修饰饼状图+突出显示某个饼状图的部分)

时间:2024-09-11 10:52:08浏览次数:12  
标签:plt pie chart 设置 修饰 绘制 状图

饼状图常用于数据统计和分析领域,通常分为2D与3D饼状图。饼状图显示一个数据系列(数据系列:在图表中绘制的相关数据点,这些数据源自数据表的行或列。在现实应用中,经常使用饼状图来展示数据分析的结果,这样可以更加直观的展示数据分析结果。在本节的内容中,将详细讲解使用Python绘制饼状图的知识。

5.1  绘制基本的饼状图

在数据可视化分析工作中,经常需要绘制和数据统计相关的柱状图。在本节的内容中,将详细讲解在Python程序中使用各种库绘制基本饼状图的知识。

5.1.1  绘制简易的饼状图

在Python程序中,可以使用Matplotlib中的函数matplotlib.pyplot.pie()绘制一个饼状图。请看下面的实例文件pie01.py,功能是使用Matplotlib绘制一个饼状图,可视化展示XX网站会员用户教育水平的分布信息。

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体
# 构造数据
edu = [0.2515,0.3724,0.3336,0.0368,0.0057]
labels = ['中专','大专','本科','硕士','其他']
"""
绘制饼图
explode:设置各部分突出
label:设置各部分标签
labeldistance:设置标签文本距圆心位置,1.1表示1.1倍半径
autopct:设置圆里面文本
shadow:设置是否有阴影
startangle:起始角度,默认从0开始逆时针转
pctdistance:设置圆内文本距圆心距离
返回值
l_text:圆内部文本,matplotlib.text.Text object
p_text:圆外部文本
"""

# 绘制饼图
plt.pie(x = edu, # 绘图数据
    labels=labels, # 添加教育水平标签
    autopct='%.1f%%' # 设置百分比的格式,这里保留一位小数
)
# 添加图标题
plt.title('XX网站会员用户的教育水平分布')
plt.show()              # 显示图形

执行效果如图5-1所示。

图5-1  执行效果

另外,我们也可以使用库Pygal中内置函数Pie()绘制饼状图。请看下面的实例文件pie01-1.py,功能是库Pygal绘制一个饼状图,可视化展示某年度浏览器产品的市场份额数据。

import pygal

pie_chart = pygal.Pie()
pie_chart.title = 'Browser usage in February 2012 (in %)'
pie_chart.add('IE', 19.5)
pie_chart.add('Firefox', 36.6)
pie_chart.add('Chrome', 36.3)
pie_chart.add('Safari', 4.5)
pie_chart.add('Opera', 2.3)
pie_chart.render_to_file('bar_chart.svg')

执行后会得到文件bar_chart.svg,效果如图5-2所示。

图5-2  文件bar_chart.svg的效果

5.1.2  修饰饼状图

请看下面的实例文件pie02.py,功能是以前面的例文件pie01.py为基础进行升级,修饰了使用Matplotlib绘制的饼状图,可视化展示XX网站会员用户教育水平的分布信息。

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']  # 指定默认字体
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.rcParams['font.sans-serif'] = ['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False

# 将横、纵坐标轴标准化处理,确保饼图是一个正圆,否则为椭圆
plt.axes(aspect='equal')
# 绘制饼图
plt.pie(x = edu,            # 绘图数据
    explode=explode,        # 突出显示大专人群
    labels=labels,          # 添加教育水平标签
    colors=colors,          # 设置饼图的自定义填充色
    autopct='%.1f%%',       # 设置百分比的格式,这里保留一位小数
    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('XX网站会员用户的教育水平分布统计图')
# 显示图形
plt.show()

执行效果如图5-3所示。

图5-3  执行效果

5.1.3  突出显示某个饼状图的部分

在前面的实例文件pie02.py中,通过设置函数matplotlib.pyplot.pie()中的参数explode设置某个饼状部分突出显示。请看下面的例文件pie03.py,功能是使用Matplotlib绘制的饼状图,设置了某个饼状图部分突出显示。

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']='SimHei'				#设置中文显示
plt.figure(figsize=(6,6))							#将画布设定为正方形,则绘制的饼图是正圆
label=['第一','第二','第三']							#定义饼图的标签,标签是列表
explode=[0.01,0.2,0.01]							#设定各项距离圆心n个半径
#plt.pie(values[-1,3:6],explode=explode,labels=label,autopct='%1.1f%%')#绘制饼图
values=[4,7,9]
plt.pie(values,explode=explode,labels=label,autopct='%1.1f%%')#绘制饼图
plt.title('2018年饼图')
plt.savefig('./2018年饼图')
plt.show()

执行效果如图5-4所示。

 

图5-4  执行效果

标签:plt,pie,chart,设置,修饰,绘制,状图
From: https://blog.csdn.net/asd343442/article/details/142133973

相关文章

  • 抛物线绘制 代码 ForceMode.VelocityChange,这种模式,忽略质量变化的影响 , 质量默认为1
    publicLineRenderer线渲染器;publicVector3[]线的点们=newVector3[60];publicTransform发射点;publicfloat力度=10;publicfloat细分长度=.02f;publicGameObject子弹;voidUpdate(){for(intfFor=0;fFor<线的点们.Length;f......
  • shader 案例学习笔记之绘制圆
    环境搭建:参考glslvscode环境搭建先上代码#ifdefGL_ESprecisionmediumpfloat;#endifuniformvec2u_resolution;voidmain(){vec2st=gl_FragCoord.xy/u_resolution.xy;st-=0.5;st.x*=u_resolution.x/u_resolution.y;floatr=length(st);......
  • Java中的修饰符
    1.访问权限修饰符访问权限分四种级别:公开级别:用public修饰,对外公开。受保护级别:用protected修饰,向子类及同一个包中的类公开。默认级别:没有访问权限修饰符,向同一个包中的类公开。私有级别:用private修饰,只有类本身可以访问,不对外公开。下图总结访问级别访问权限修饰符同......
  • 前端使用 Konva 实现可视化设计器(22)- 绘制图形(矩形、直线、折线)
    本章分享一下如何使用Konva绘制基础图形:矩形、直线、折线,希望大家继续关注和支持哈!请大家动动小手,给我一个免费的Star吧~大家如果发现了Bug,欢迎来提Issue哟~github源码gitee源码示例地址矩形先上效果!实现方式基本和《前端使用Konva实现可视化设计器(21)-绘制......
  • wpf inkcanvas 多点触控 解决部分屏幕画笔笔迹在绘制时会多出一段的问题
    添加一个支持多点触摸的画布///<summary>///支持多点触摸的InkCanvas///</summarypublicclassMultiTouchCanvas:FrameworkElement{privateInkCanvasProxy_inkCanvas=newInkCanvasProxy();privateGridtransparentOverlay=n......
  • C语言学习 --- 修饰变量的关键字
    修饰变量的关键字        修饰变量的关键字+数据类型+变量名 auto:自动默认不写register:        register是作为寄存器的变量,就是在CPU里面存储的地方作用:        将频繁进行IO操作的变量声明成寄存器变量,节省数据读取操作的时间,提高执行效率......
  • NHS修饰的ITO玻片|活化酯改性ITO芯片|NHS Functional Glass Slides
    NHS修饰的ITO玻片|活化酯改性ITO芯片|NHSFunctionalGlassSlidesNHS修饰的ITO玻片是一种在科研领域广泛应用的特殊玻片,它结合了NHS(N-hydroxysuccinimide,N-羟基琥珀酰亚胺)修饰和ITO(IndiumTinOxide,氧化铟锡)涂层的优点。以下是对NHS修饰的ITO玻片的详细解释:一、NHS修饰概述......
  • 羧基修饰的ITO玻片|Carboxylic acid functional glass slides
    羧基修饰的ITO玻片|Carboxylicacidfunctionalglassslides羧基修饰的ITO玻片是一种在氧化铟锡(ITO)涂层表面引入羧基官能团的玻璃载玻片。这种修饰增强了ITO与其他材料的粘附性,并提供了反应活性的表面,适用于电子学和化学领域的各种应用,如场效应晶体管、太阳能电池和固相合成......
  • Canvas绘制图片合成样式
    效果图web*{margin:0;padding:0;}.container{position:relative;width:328px;height:328px;margin:100pxauto;}.containerimg{position:absolute;width:328px;height:328px;}#canvas{posi......
  • Python Matplotlib绘制柏拉图以及在ax.table上绘制矩形、直线、椭圆
    快速入门指南官网官方网址:Matplotlib—VisualizationwithPython官方教程:Tutorials—Matplotlib3.9.2documentation官方指南:UsingMatplotlib—Matplotlib3.9.2documentation官方示例:Examples—Matplotlib3.9.2documentation官方API说明:APIReference—Mat......