Matplotlib.pyplot.bar() 绘制条形图
Python代码:
# 导入第三方包
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
# matplotlib其实是不支持显示中文的 显示中文需要额外设置
# 设置字体类型,宋体:SimSun 华文楷体:STKaiti 微软雅黑:Microsoft YaHei
matplotlib.rcParams['font.family'] = 'STKaiti'
# 设置字体尺寸
matplotlib.rcParams['font.size'] = 12
# 工作经验(年)
x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 开发岗月薪
y_dev = [15605, 19135, 21941, 24512, 32985, 34337, 35123, 36452, 37812, 39928, 42035]
# 产品岗月薪
y_prod = [9235, 10712, 11058, 12352, 17575, 18023, 18541, 19823, 20352, 21578, 24675]
# 创建画布 num: 画布名称(默认figure1)
# figsize=(8, 6) dpi=100 相当于设置画布分辨率为 800 * 600
plt.figure(num='e_bar', figsize=(8, 6), dpi=100)
# 变成ndarray数组
x_index = np.array(x)
# 条形图宽度
width = 0.16
# bar(x, y, width=条形图宽度, label=标签) 两个条形图,分别左/右平移width,便于x坐标居中显示
plt.bar(x_index - width, y_dev, width=width * 2, label='软件研发')
plt.bar(x_index + width, y_prod, width=width * 2, label='产品经理')
# 设置横纵坐标标签
plt.xlabel(xlabel='工作经验(年)')
plt.ylabel(ylabel='月薪(元)')
# 设置X轴刻度
plt.xticks(ticks=x)
# 设置图像标签
plt.title(label='工作经验与月薪的关系图')
# 展示标签
plt.legend()
# 是否加上网格
plt.grid(False)
# 对空白区域进行自动填充
# plt.tight_layout()
# 借助zip方法按顺序同时枚举多个元素
for x0, y1, y2 in zip(x_index, y_dev, y_prod):
# 对应坐标显示文字
# x, y: 横纵坐标 s: 显示文字
plt.text(x=x0 - width, y=y1, s=y1, ha='center', va='bottom', fontsize=11)
plt.text(x=x0 + width, y=y2, s=y2, ha='center', va='bottom', fontsize=11)
# 保存图像
# plt.savefig('e_bar.png')
# 展示图片
plt.show()
条形图效果: