里面包含了:
效果图:
代码:
plt.figure(figsize=(8, 6)) //图片大小
plt.plot(x,data1, color='orange', label='M1')
plt.plot(x,data2, color='green', label='M2')
plt.plot(x,data3, color='blue', label='M3')
#设置图例参数:大小、字体
plt.rcParams.update({'font.size': 17,'font.family': ['serif'],'font.serif':'Times New Roman'})
# 设置图例:位置、更细化的位置
plt.legend(loc='upper right') # ,bbox_to_anchor=(0.8, 1)
# 坐标轴标题:名称、位置、字体、大小
plt.xlabel("Iterations", labelpad=10, fontdict={'family': 'Times New Roman','fontsize': 15})
plt.ylabel("Loss value", labelpad=10, fontdict={'family': 'Times New Roman','fontsize': 15})
plt.show()
里面包含了:
代码:
# 三合一
# 整体图片设置:分组、大小
fig, ax = plt.subplots(1, 3, figsize=(20, 6))
# 每个图片之间的间隔
plt.tight_layout(pad=8)
# 图片1
index = 1 # 当前序号
ax0 = plt.subplot(1, 3, index) # 确定绘制的位置
h = ax0.imshow(vT_comsol, interpolation='nearest', cmap='rainbow', vmin=vmin, vmax=vmax,
extent=[0, 0.3, 0, 0.18],
origin='lower', aspect='auto')
plt.xlabel("r/m", labelpad=10, fontdict={'family' : 'Times New Roman','fontsize': 15})
plt.ylabel("z/m", labelpad=10, fontdict={'family' : 'Times New Roman','fontsize': 15})
plt.title("Exact V(r,z)", pad=15, loc='center', fontdict={'family': 'Times New Roman','fontsize': 20})
divider0 = make_axes_locatable(ax0)
cax0 = divider0.append_axes("right", size="5%", pad=0.05)
fig.colorbar(h, cax=cax0)
# 图片2
ax1 = plt.subplot(1, 3, index + 1)
h1 = ax1.imshow(vvv, interpolation='nearest', cmap='rainbow', vmin=vmin, vmax=vmax,
extent=[0, 0.3, 0, 0.18],
origin='lower', aspect='auto')
plt.xlabel("r/m", labelpad=10, fontdict={'family': 'Times New Roman','fontsize': 15})
plt.ylabel("z/m", labelpad=10, fontdict={'family': 'Times New Roman','fontsize': 15})
plt.title("Predicted V(r,z)", pad=15, loc='center', fontdict={'family': 'Times New Roman','fontsize': 20})
divider1 = make_axes_locatable(ax1)
cax1 = divider1.append_axes("right", size="5%", pad=0.05)
fig.colorbar(h1, cax=cax1)
# 图片3
ax2 = plt.subplot(1, 3, index + 2)
h2 = ax2.imshow(v_error, interpolation='nearest', cmap='rainbow', vmin=v_errmin, vmax=v_errmax,
extent=[0, 0.3, 0, 0.18],
origin='lower', aspect='auto')
plt.xlabel("r/m", labelpad=10, fontdict={'family': 'Times New Roman','fontsize': 15})
plt.ylabel("z/m", labelpad=10, fontdict={'family': 'Times New Roman','fontsize': 15})
plt.title("Absolute error", pad=15, loc='center', fontdict={'family': 'Times New Roman','fontsize': 20})
divider2 = make_axes_locatable(ax2)
cax2 = divider2.append_axes("right", size="5%", pad=0.05)
fig.colorbar(h2, cax=cax2)
plt.show()
python画图时,在标题、图例打印中文时,经常会无法显示。
我们可以去选择Windows自带的字体,打开相应目录,复制字体的名字;
设为预设字体,之后统一调用。即可正常显示中文。
效果图:
代码:
# 预设字体类型
myfont = matplotlib.font_manager.FontProperties(fname='C:/Windows/Fonts/simsun.ttc',size=15)
plt.figure(figsize=(10, 6)) # 设置整体图片的的大小
plt.plot(x,data1, label='曲线1')
plt.plot(x,data2, linestyle='-.', label='曲线2')
plt.legend(loc='upper right', prop = myfont) # 图例设置为刚才预设的字体类型
# 坐标轴标题设置为刚才预设的字体类型
plt.xlabel("迭代次数", fontproperties=myfont)
plt.ylabel("损失值", fontproperties=myfont)
plt.show()