图例的位置变化由title()函数中的loc参数和bbox_to_anchor参数实现
plt.title(loc='位置字符串', bbox_to_anchor=(x, y, width, height))
表格的位置变化由tabke()函数中的loc参数和bbox参数实现
plt.tabke( lco='位置字符串', bbox=[xmin, ymin, width, height])
实例:果酱面包配料比例
导入模块并设置中文
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
准备数据
kinds = ['面粉','全麦粉','酵母','苹果酱','鸡蛋','黄油','盐','白糖']
weight = [250, 150, 4, 250, 50, 30, 4, 20]
用i循环的方法来描绘每部分所占的百分比
total_weight = 0
for i in weight:
total_weight += i
batching_scale = [i / total_weight for i in weight] #所占的百分比
用pie()参数描绘饼图
plt.pie(batching_scale, autopct='%3.1f%%') #保留一位小数
用legend()来绘制图例
plt.legend(kinds,loc='upper right', bbox_to_anchor=[2.1,0.8], ncol=4) #分成四列显示
其中,ncol参数:表示图例列数
loc参数:调整图例在图表的位置
bbox_to_anchor参数:微调图例的位置(会覆盖loc参数的指令)
效果图如下:
用table()来添加表格
colors = ["#e41a1c","#377eb8","#00ccff",
"#984ea3","#e44a1c","#e33a1c",
"#e88a1c","#184ea3"] #设置8个颜色用于列标题
plt.table(cellText=[weight], #导入表格内容
cellLoc='center', #使文本居中
rowLabels=['重量(g)'], #设置列标题
colLabels=kinds, #导入行标题
loc= 'lower center',
bbox=[1.1,0.2,1,0.2], #设置表格在画布的位置
cellColours=['y'*8], #因表格里有8个单元格所以要*8,或者设置8种颜色
rowColours=['y'], #行标题的颜色
colColours=colors) #列标题的颜色(与上述不同,不能直接设置颜色)
plt.show()
其中,bbox参数:用来设置表格的位置和大小, 参数内前两位控制位置,后两位控制大小
cellColours:用于每单个单元格的颜色设置
rowColours:用于行标题的颜色填充
colColours:用于列标题的颜色填充
最后的效果图如下: