文章重心:
- 写论文的时候,图片的大小,字体的大小,副坐标轴,这些都是很重要的因素,保存一下之前用过的画图代码
- 单图
- 多图(两个子图)
- 堆叠柱状图
- 两个Y轴的图
问题:
- python保存的时候,我选择的是svg,但是这样图片会比较大,查重什么的需要把图片都删了(一般有文件大小限制),虽然不影响,但是让人不爽,有博主分享了怎么保存为emf
- python保存的图,有时候需要裁剪一下,不然边上留白比较多
单图示例
import numpy as np
from matplotlib import pyplot as plt
# 设置显示中文字体
plt.rcParams['font.family'] = ['SimSun', 'Times New Roman'] # 中文为SimSun,英文为Times New Roman
plt.rcParams['mathtext.fontset'] = 'stix' # 设置数学公式字体为stix
# 设定的图片宽度
width_cm = 12
high_cm = 6
# 设置图的大小,将宽度转换为英寸
fig, ax = plt.subplots(figsize=(width_cm / 2.54, high_cm / 2.54)) # 6是一个示例高度
# 设置全局字体大小
plt.rc('font', size=10.5)
# 关闭自动缩放字体大小的功能
plt.rcParams['font.size'] = 10.5 # 字体大小为10.5磅
plt.rcParams['axes.titlesize'] = 10.5 # 坐标轴标题的字体大小为10.5磅
time_scope = range(24)
# 在主坐标轴上绘制曲线图
plt.plot(time_scope, np.zeros(24), linestyle='--', linewidth=1.5, color='gray')
plt.plot(time_scope, range(24), label='ESS功率', linestyle='-', linewidth=1.5, color='red')
# 设置次坐标轴的y轴标签
plt.xlabel('时间(h)')
plt.ylabel('功率(kW)')
# 添加曲线图的图例
plt.legend(loc='upper left', frameon=False, fancybox=False, shadow=False)
# 设置主坐标轴的刻度
plt.xlim(-0.5, 23.5)
plt.xticks(range(0, 24, 2))
# 启用副刻度线
plt.minorticks_on()
plt.xticks(range(0, 24, 1), minor=True)
plt.yticks([x / 2 for x in range(-0 * 2, 24 * 2, 5)])
# plt.yticks([x / 2 for x in range(-0 * 2, 25 * 2 + 1, 2)], minor=True)
# 调整 Matplotlib 的显示设置,紧凑
plt.tight_layout()
plt.savefig( '图片.svg', dpi=500)
plt.show()
结果如图所示:
多图示例
两个子图,但是实际上画一个图就够了,在word里面再排版会更好:
import numpy as np
from matplotlib import pyplot as plt
from matplotlib.gridspec import GridSpec
# 设置显示中文字体
plt.rcParams['font.family'] = ['SimSun', 'Times New Roman'] # 中文为SimSun,英文为Times New Roman
plt.rcParams['matht