matplotlib.pyplot.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, *, data=None)
常用参数部分 & 例图
x
: 传入的数据
explode
:默认x
的饼图不爆炸。自定义确定哪一块爆炸&爆炸距离。
labels
和labeldistance
: 默认x
没有标签,标签位于1.1倍半径处。自定义每块饼的标签,和位置。
autopct
和pctdistance
: 默认x
不显示每块饼的百分比标注。autopct
自定义是每块饼的百分比属性,如几位小数, pctdistance
默认在半径0.6位置显示百分数,自定义百分数距离半径的比例。
shadow
: 默认x
是二维平面饼图,没有阴影。自定义饼图是否有阴影属性。
startangle
: 默认x
第一块饼和水平面的角度不固定。自定义第一块饼图和水平面的角度。
import matplotlib.pyplot as plt
labels = ['Frogs', 'Hogs', 'Dogs', 'Logs']
sizes = [15, 30, 45, 10]
explode = (0, 0.1, 0, 0) # 只爆炸第二块饼,爆炸距离是半径的0.1。
fig, ax1 = plt.subplots()
ax1.pie(sizes, explode=explode, labels=labels, autopct='%.1f%%', pctdistance=0.7, shadow=True, startangle=90)
ax1.axis('equal') # 等价于 ax1.set(aspect='euqal'),使得饼图在figure窗口放大缩小的过程中,保持圆形不变。
plt.show()
不太常用参数部分 & 例图
- part1:
counterclock=True
、wedgeprops
explode = (0, 0.2, 0, 0)
ax1.pie(sizes, explode=explode,
labels=labels, autopct='%.1f%%', pctdistance=0.7,
shadow=True, startangle=90,
counterclock=False, # 使得顺时针顺序应用explode
wedgeprops=dict(edgecolor='w', width=0.7, linewidth=10) # 属性见备注
)
备注:
wedgeprops=dict()
:设定每块饼图的一些属性。其中edgecolor='w'
设定边框颜色为白色,width=0.7
使得饼图0.3倍半径是空白,linewidth=10
设定边框的粗细为10。
- part2:
rotatelabels
: 默认无。自定义是否按照角度进行调整每块饼的label。rotatelabels=True
如下图:
- part3:
frame
: 默认False。自定义是否显示x, y坐标轴外框。frame=True
如下图:
colors
: 默认系统自动设定x
每块饼的颜色。自定义每块饼的颜色。