饼图(扇形图)是一种常见的可以表示离散变量各水平占比情况的一种统计图。Matpllotlib提供了pie()
函数用于绘制饼图。
import matplotlib.pyplot as plt_ = plt.pie(range(5))plt.show()
pie()提供一些详细选项如下。
plt.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, satrtangle=None, radius=None, counterclock=True, wedgeprops=None, textprops=None, center=(0, 0), frame=False)
●x:绘图的数据。
●explode:指定饼图某些部分的突出显示。
●labels:添加标签。
●colors:指定填充颜色。
●autopct:自动添加百分比显示,可以采用格式化的方法显示。
●pctdistance:设置百分比标签与圆心的距离。
●shadow:是否添加阴影效果。
●labeldistance:设置各扇形标签与圆心的距离。
●satrtangle:设置饼图的初始摆放角度。
●radius:设置饼图半径大小。
●counterclock:是否让饼图按顺时针呈现。
●wedgeprops:设置饼图内外边界的属性,如界限的粗细、颜色等。
●textprops:设置饼图中文本的属性,如字体大小、颜色等。
●center:指定饼图的中心点位置,默认为原点。
●frame:是否要显示饼图背后的图框,如果设置为True,则需要同时控制图框x轴、y轴的范围和饼图的中心位置。
案例:假设某劳务公司统计了职工的学历占比情况,要使用饼图展现出来,并突出硕士学位的群体。
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号edu = [0.26, 0.35, 0.32, 0.09, 0.08]labels = [u'中专', u'大专', u'本科', u'硕士', u'其他']explode = [0, 0, 0, 0.1, 0] # 突出硕士群体colors = ['#9999ff', '#ff9999', '#7777aa', '#2442aa', '#dd5555'] # 自定义颜色# 绘制饼图_ = plt.pie(x=edu,explode=explode,labels=labels, # 添加教育水平标签colors=colors, # 设置饼图颜色自定义填充颜色autopct='%.2f%%', # 设置百分比的格式,这里保留2位小数pctdistance=0.8, # 设置百分比标签与圆心的距离labeldistance=1.2, # 设置教育水平标签与圆心的距离startangle=180, # 设置饼图的初始角度radius=1.5, # 设置饼图的半径counterclock=False, # 是否逆时针,这里设置为顺时针方向wedgeprops={'linewidth': 1.5, 'edgecolor': 'green'},# 设置饼图内外边界属性值textprops={'fontsize': 12, 'color': 'k'},# 设置文本标签属性值center=(2, 2), # 设置饼图的原点frame=0) # 是否显示饼图图框,这里没有显示plt.show()