绘制饼状图的基本语法
创建数组 x 的饼图,每个楔形的面积由 x / sum(x) 决定;
若 sum(x) < 1,则 x 数组不会被标准化,x 值即为楔形区域面积占比。注意,该种情况会出现 1 - sum(x) 的空楔形
若 sum(x) > 1,则由 x[ i ] / sum(x) 算出每一个楔形占比,饼图360°区域均被填充。
下图为sum(x) < 1 的情况,存在空楔形区域。
1 语法
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 )
x - 创建饼状图的数组
explode - array-like, optional, default: None;偏离每个楔形的半径的分数。若非None,则 数组长度 = len(x),
labels - list, optional, default: None;为每个楔形添加标签
color - array-like, optional, default: None;若无,则用currently active cycle中的颜色添加
autopct - None (default), string, or function, optional;用于数值标记楔形的数值 / 字符串 / 函数,其中标签置于楔形内部;若None,则不现实楔形块占比数值,可以是整数( ' %d%%' )、浮点数( ' %2.3f %%' )、字符串( ' %s %%' )、函数。
pctdistance - float, optional, default: 0.6 ;描述autopct 值在楔形块的位置;当pctdistance = 0,所有autopct值均位于楔形块的 ‘ 尖端 ’ 位置,当为1,则位于楔形块的弧线位置,当大于1时,则会成比例远离尖端位置,
当 pctdistance = 0时,一个饼状图特例。
shadow - bool, optional, default: False;为饼状图画阴影(True)
labeldistance : float, optional, default: 1.1;描述label标签的在楔形块上的位置,确切地说,与圆心无关,而相对于楔形块的 “尖端 ” 的位置关系
startangle : float, optional, default: None;若不是None,则饼图的起点为 x 轴并逆时针旋转 angle 度
radius : float, optional, default: None;饼图的半径,若为None时,则默认为1
counterclock : bool, optional, default: True;指定分数方向,逆时针 (True) 或顺时针
wedgeprops : dict, optional, default: None;描述楔形边界线宽度值,参数形式``wedgeprops = {'linewidth': 3}``楔形边界线宽度为3
textprops : dict, optional, default: None;传递给文本对象的字典参数
center : list of float, optional, default: (0, 0);图标的中心为,默认(0,0),也可以是两个标量的序列(sequence of 2 scalars)
frame : bool, optional, default: False;若True,则绘制轴框架
texts : list;标签列表,class:`matplotlib.text.Text` instances实例.
autotexts : list;基于数字标签(numeric labels)的class:`~matplotlib.text.Text`实例列表,仅当参数* autopct *不是* None *时才会返回。
2 示例
import matplotlib.pyplot as plt values = [13.23, 9.29, 5.34, 4.48, 3.01,2.97] spaces = [0.01, 0.01, 0.01, 0.08, 0.01,0.01] labels = ['Java', 'C', 'C++', 'Python', 'C#','Js'] colors = ['b', 'orangered', 'g', 'violet','gold','#EED2EE'] plt.figure('Pie', facecolor='lightgray') plt.title('Pie', fontsize=20) plt.pie(values, spaces, labels, colors, '%d%%',shadow=True, startangle=90) # 让两个轴等比例缩放 # 如无该代码段,则为椭圆形饼状图 plt.axis('equal') plt.show()
各语言占比数据为2017年11月前6个