matplotlib: 绘制柱状图

通过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()

柱状图如下

matplotlib: 绘制柱状图_第1张图片

  • 设置画布大小: 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柱状图的图例名字

其余的用到再补充

你可能感兴趣的:(ImageProcess,matplotlib,python,信息可视化)