使用 Matplotlib 提供的 pie()函数来绘制饼图。
下面是 TIOBE 2018 年 8 月的编程语言指数排行榜的前 10 名及其他:
Java:16.881%
C:14.966%
C++:7.471%
Python:6.992%
Visual Basic.NET:4.762%
C#:3.541%
PHP:2.925%
JavaScript:2.411%
SQL:2.316%
Assembly language:1.409%
其他:36.326%
下面程序将使用饼图来直观地展示这个编程语言指数排行榜:
import matplotlib.pyplot as plt # 准备数据 data = [0.16881, 0.14966, 0.07471, 0.06992, 0.04762, 0.03541, 0.02925, 0.02411, 0.02316, 0.01409, 0.36326] # 准备标签 labels = ['Java', 'C', 'C++', 'Python', 'Visual Basic .NET', 'C#', 'PHP', 'JavaScript', 'SQL', 'Assembly langugage', '其他'] # 将第4个语言(Python)分离出来 explode = [0, 0, 0, 0.3, 0, 0, 0, 0, 0, 0, 0] # 使用自定义颜色 colors=['red', 'pink', 'magenta','purple','orange'] # 将横、纵坐标轴标准化处理,保证饼图是一个正圆,否则为椭圆 plt.axes(aspect='equal') # 控制X轴和Y轴的范围(用于控制饼图的圆心,半径) plt.xlim(0,8) plt.ylim(0,8) # 绘制饼图 plt.pie(x = data, # 绘图数据 labels=labels, # 添加编程语言标签 explode=explode, # 突出显示Python colors=colors, # 设置饼图的自定义填充色 autopct='%.3f%%', # 设置百分比的格式,此处保留3位小数 pctdistance=0.8, # 设置百分比标签与圆心的距离 labeldistance = 1.15, # 设置标签与圆心的距离 startangle = 180, # 设置饼图的初始角度 center = (4, 4), # 设置饼图的圆心(相当于X轴和Y轴的范围) radius = 3.8, # 设置饼图的半径(相当于X轴和Y轴的范围) counterclock = False, # 是否逆时针,这里设置为顺时针方向 wedgeprops = {'linewidth': 1, 'edgecolor':'green'},# 设置饼图内外边界的属性值 textprops = {'fontsize':12, 'color':'black'}, # 设置文本标签的属性值 frame = 1) # 是否显示饼图的圆圈,此处设为显示 # 不显示X轴和Y轴的刻度值 plt.xticks(()) plt.yticks(()) # 添加图标题 plt.title('2018年8月的编程语言指数排行榜') # 显示图形 plt.show()
上面程序调用 pie() 函数来生成饼图。创建饼图最重要的两个参数就是 x 和 labels,其中 x 指定饼图各部分的数值,labels 则指定各部分对应的标签。
运行上面程序,可以看到如图 1 所示的效果。
图 1 pie绘制饼图