1. 饼图
`pie()`函数用于绘制饼图,其基本语法如下:
plt.pie(x, explode=None, labels=None, colors=None, autopct=None, startangle=None, shadow=False)
其中,参数含义如下:
- `x`: 数组,表示饼图中每个部分的数值大小。
- `explode`: 数组,表示每个部分距离饼图圆心的偏移量,默认为 None。
- `labels`: 数组,表示每个部分的标签,默认为 None。
- `colors`: 数组,表示每个部分的颜色,默认为 None。
- `autopct`: 字符串或函数,表示每个部分在饼图中所占比例的显示方式,可以是类似“%1.1f%%”这
样的字符串,或者是一个自定义函数,默认为 None。
- `startangle`: 数值,表示饼图的起始角度,默认为 None。
- `shadow`: 布尔值,表示是否显示阴影,默认为 False。
需要注意的是,`x`和`labels`参数必须同时存在或同时不存在,否则会报错。另外,`colors`和
`autopct`参数的长度必须与`x`的长度相同。
x = [10, 20, 30, 40]
plt.pie(x, autopct='%.1f%%')
plt.savefig('images/5-18.png')
plt.show()
df = pd.read_excel('data/plot.xlsx', sheet_name='pie1')
citys, values = df.省份, df.销量
# 饼图
plt.figure(figsize=(5, 5))
plt.pie(
x=values, # 值
autopct='%.1f%%', # 百分比
labels=citys, # 标签
pctdistance=0.8, # 百分比文字的位置
explode=[0, 0, 0, 0.1, 0, 0.1, 0, 0, 0, 0], # 分裂效果
# 字体样式
textprops={'fontsize': 12, 'color': 'blue'},
shadow=True
)
plt.savefig('images/5-19.png')
plt.show()
# 饼图
plt.pie(
x=values, # 值
autopct='%.1f%%', # 百分比
labels=citys, # 标签
pctdistance=0.8, # 百分比文字的位置
# 字体样式
textprops={'fontsize': 10, 'color': 'k'},
#
wedgeprops={'width': 0.4, 'edgecolor': 'w'}
)
plt.savefig('images/5-20.png')
plt.show()
df1 = pd.read_excel('data/plot.xlsx', sheet_name='pie1')
df2 = pd.read_excel('data/plot.xlsx', sheet_name='pie2')
citys1, values1 = df1.省份, df1.销量
citys2, values2 = df2.省份, df2.销量
plt.figure(dpi=200)
# 饼图
plt.pie(
x=values1, # 值
autopct='%.1f%%', # 百分比
labels=citys1, # 标签
pctdistance=0.8, # 百分比文字的位置
# 字体样式
textprops={'fontsize': 10, 'color': 'k'},
#
wedgeprops={'width': 0.4, 'edgecolor': 'w'}
)
# 饼图
plt.pie(
x=values2, # 值
autopct='%.1f%%', # 百分比
# labels=citys2, # 标签
pctdistance=0.8, # 百分比文字的位置
# 字体样式
textprops={'fontsize': 8, 'color': 'k'},
# 半径
radius=0.6
)
plt.legend(citys1, fontsize=3)
plt.savefig('images/5-21.png')
plt.show()