通过matplotlib绘制柱形图
第一个例子
from matplotlib import pyplot as plt
y = [10, 11, 12, 11, 9, 8, 13, 10] # 创建y轴坐标
x = list(range(1,9)) # 创建x轴坐标
# 创建x轴显示的参数(此功能在与在图像中x轴仅显示能被10整除的刻度,避免刻度过多分不清楚)
# x_tick = list(map(lambda num: "" if num % 10 != 0 else num, x))
# plt.figure(figsize=(200, 100), dpi=10)
plt.figure(figsize=(10, 5)) # 创建一个画布
plt.xlabel('This is x label', size=15) # 设置x轴的label
plt.ylabel('This is y label', size=15) # 设置y轴的label
for a,b in zip(x, y):
plt.text(a, b+0.2, b, ha='center', va='bottom', fontsize=15) # 给每个柱形图上加上数字
plt.bar(x, y, alpha=0.7, width=0.6, lw=2, label='This is label') # 绘制条形图
plt.xticks(x, x, size=15) # 显示x轴刻度
plt.yticks(size=15) # 显示y轴刻度
plt.title('This is bar caption', fontsize=15)#标题,并设定字号大小
plt.legend(loc=2)#图例展示位置,数字代表第几象限
plt.grid() # 打开网格线
# 获取当前图像句柄
fig = plt.gcf()
plt.show() # 显示图像
fig.savefig('a.png') # 存储图像
plt.show()
柱状图如下
- 设置画布大小: plt.figure(figsize=(10, 5))
- 设置x轴label: plt.xlabel(“label name”, size=10),其中size是label的大小
- 设置y轴label: plt.ylabel(“label name”, size=10),其中size是label的大小
- 在柱状图上加上数值: plt.text(x=a, y=b, s=b, ha=‘center’, va= ‘bottom’, fontsize=7),其中xy是要标注的位置,通常y=b+0.1等,s是标注的值,ha表示水平居中,va是垂直对齐,fontsize是字体大小
- 覆盖x轴坐标: plt.xticks(ticks, labels, size=10),覆盖x轴坐标,ticks是要覆盖的位置,labels是覆盖后的值,ticks和labels长度要相等
- 覆盖y轴坐标: plt.xticks(ticks, labels, size=10),覆盖y轴坐标,ticks是要覆盖的位置,labels是覆盖后的值,ticks和labels长度要相等
- 柱状图的标题: plt.title(“caption”, fontsize=10)
- 图例相关: plt.legend(loc=2, fontsize=10),loc图例展示位置,1234分别代表右上,左上,左下,右下,还有5678等等,fontsize图例的大小
- 网格线: plt.grid()打开网格线
- 绘制柱状图: plt.bar(x=x, height=y, width=0.8, alpha=1, facecolor, edgecolor, lw, label=“label”),x是横坐标的值,height是纵坐标的值(高度),width单个柱子的宽度,alpha柱子的透明度,facecolor柱子的颜色,edgecolor柱子的边缘颜色,lw柱子边缘线的宽度,label柱状图的图例名字
其余的用到再补充