刚开始用python写一些自动化报告,由于画图操作太多,不希望画图操作显示,只希望代码默默运行再保存图片,只需要添加一句话:
import matplotlib
matplotlib.use('Agg')
为了扩充内容,添加一个柱形图,初学者可以练手
import matplotlib.pyplot as plt
x = [2017, 2018, 2019, 2020, 2021]
y = [19, 28, 22, 35,40]
# 如果提供的数据有中文字符,为了使中文字符能更好的显示,需要添加以下语句
# 设置中文显示为微软雅黑
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
# 设置图表默认字体为12
plt.rcParams['font.size'] = 12
# 设置画布大小
plt.figure(figsize=(6, 5))
# 画柱形图,设置颜色和柱宽
plt.bar(x, y, color='r', width=0.5)
# 添加水平网格线,灰色,虚线,设置透明度
plt.grid(axis="y", c="grey", linestyle="--", alpha=0.4)
# 添加标题,并设置字体
plt.title(label='小红家每年的玩具真多呀', fontsize=14, fontweight='bold')
# 给柱子添加数据标签
for a, b in zip(x, y):
plt.text(a, b + 0.1, '%d' % b, ha='center', va='bottom')
# 纵坐标轴稍微拉长一点
y_max = max(y)
plt.ylim(0, y_max * 1.1)
# 在做条形图或者一些文字标签比较长的图时,为了让布局好看一点,可以使用下面语句【本图看不出变化】
plt.tight_layout()
# 图片显示,查看效果
plt.show()
# 图片保存,自定义路径
plt.savefig("C:/Users/Desktop/toy.jpg")
运行结果:
?为了让网格线不压在系列柱子上,可以添加以下语句
# 为了让网格线压在柱子下方
plt.gca().set_axisbelow(True)
运行结果:
如果希望柱子颜色能像seaborn画图一样多彩,可以将plt.bar中的color参数变一下
colors = ['#FFA8A9', '#F2AF29', '#3CDBD3', '#FF474A', '#037171']
# 画柱形图,设置颜色和柱宽
plt.bar(x, y, color=colors, width=0.5)
运行结果如下:
?
|