饼图是什么
仅排列在工作表的一列或一行中的数据可以绘制到饼图中。饼图显示一个数据系列 (数据系列:在图表中绘制的相关数据点,这些数据源自数据表的行或列。图表中的每个数据系列具有唯一的颜色或图案并且在图表的图例中表示。可以在图表中绘制一个或多个数据系列。饼图只有一个数据系列。)中各项的大小与各项总和的比例。饼图中的数据点 (数据点:在图表中绘制的单个值,这些值由条形、柱形、折线、饼图或圆环图的扇面、圆点和其他被称为数据标记的图形表示。相同颜色的数据标记组成一个数据系列。)显示为整个饼图的百分比。
代码
import matplotlib.pyplot as plt
import xlrd
import matplotlib as mpl
# 正常显示
mpl.rcParams['font.sans-serif'] = [u'SimHei']
mpl.rcParams['axes.unicode_minus'] = False
# 准备数据
data = xlrd.open_workbook('D:/pythonProject/data/xxx.xlsx')
table = data.sheet_by_name('Sheet3')
province = table.col_values(0)[1:]
num = table.col_values(1)[1:]
colors = ['lightcoral', 'lightsalmon', 'lightskyblue', 'mediumslateblue', 'plum', 'lightgreen', 'lightseagreen', 'lightpink']
plt.figure(figsize=(10, 8), dpi=80)
plt.pie(num, labels=province, autopct="%1.2f%%", colors=colors,
explode=[0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1])
plt.axis('equal')
plt.legend(loc='upper left', bbox_to_anchor=(-0.1, 1))
plt.title("各省市人口占比")
plt.show()
字体显示及样式
import matplotlib as mpl
# 正常显示
mpl.rcParams['font.sans-serif'] = [u'SimHei']
mpl.rcParams['axes.unicode_minus'] = False
Windows字体:
黑体 SimHei
微软雅黑 Microsoft YaHei
微软正黑体 Microsoft JhengHei
新宋体 NSimSun
新细明体 PMingLiU
细明体 MingLiU
标楷体 DFKai-SB
仿宋 FangSong
楷体 KaiTi
仿宋_GB2312 FangSong_GB2312
颜色对照表
图片来自https://finthon.com/matplotlib-color-list/