饼图的绘制也是直接调用plt的pie方法就好了,就是有些参数很复杂,但是记住怎么使用的了就好。
源码:
# coding=utf-8
from matplotlib import pyplot as plt
'''
test
slices = [120, 80, 30, 20]
labels = ['Sixty', 'Forty', 'Extra1', 'Extra2']
colors = ['blue', 'red', 'yellow', 'green']
# 第一个参数是一个可迭代对象, plt会算出每个元素占的比重然后绘图, 标签和颜色这些都要对上,\
# wedgeprops这个参数是设置每两个块之间的分界线颜色
plt.pie(slices, labels=labels, colors=colors,
wedgeprops={'edgecolor': 'black'})
plt.tight_layout()
plt.show()
'''
'''
test2
# Language Popularity(数据集)
slices = [59219, 55466, 47544, 36443, 35917, 31991, 27097,
23030, 20524, 18523, 18017, 7920, 7331, 7201, 5833]
labels = ['JavaScript', 'HTML/CSS', 'SQL', 'Python', 'Java', 'Bash/Shell/PowerShell',
'C#', 'PHP', 'C++', 'TypeScript', 'C', 'Other(s):', 'Ruby', 'Go', 'Assembly']
plt.pie(slices, labels=labels)
plt.tight_layout()
plt.show()
'''
plt.style.use("fivethirtyeight")
slices = [59219, 55466, 47544, 36443, 35917]
labels = ['JavaScript', 'HTML/CSS', 'SQL', 'Python', 'Java']
explode = [0, 0, 0, 0.1, 0]
# explode是表示某个块相对于中心突出的百分比, 0表示不突出, 0.1表示相对于中心突出0.1, 长度必须和slices一样长,\
# startangle可以旋转我们最后的图形, 这里刚开始是javascript, 经过旋转90度后整个图逆时针旋转了90度,\
# autopct='%1.1f%%'这句话有点难懂(就这样用固定的就好了), 它的意思是在每个块上面显示出所占的百分比, 保留一位小数,\
# shadow为True时可以在某些块边缘创造出"立体效果",\
# wedgeprops={'edgecolor': 'black'}是设置块与块之间的分解线的颜色
plt.pie(slices, labels=labels, explode=explode, shadow=True,
startangle=90, autopct='%1.1f%%',
wedgeprops={'edgecolor': 'black'})
plt.title("First Pie")
plt.tight_layout()
plt.show()
运行结果:
图片.png
网友评论