Python Matplotlib实现局部放大图与坐标轴美化
本文介绍如何使用Python Matplotlib库绘制局部放大图,并详细演示如何设置坐标轴加粗、控制线型与大小。通过subplot和axes方法实现多子图布局,结合spines属性美化边框,适用于论文绘图等对图像质量有严格要求的场景。
Matplotlib局部放大与坐标轴美化实现
在数据可视化过程中,经常需要放大图像的特定区域以清晰展示细节变化。特别是在撰写学术论文时,往往对图表有更高要求,例如需要加粗坐标轴、精确控制线条样式及尺寸等。利用Python的Matplotlib库可以灵活实现这些功能,具体实现方式见下方代码示例。
import matplotlib.pyplot as plt
init_np = np.array(x0_list)
xopt_net_np = np.array(xopt_net)
plt.figure(figsize=(8,5))
plt.subplot(311)
ax = plt.gca() # 获取坐标轴
bwith = 1.2
ax.spines['bottom'].set_linewidth(bwith)
ax.spines['left'].set_linewidth(bwith)
ax.spines['top'].set_linewidth(bwith)
ax.spines['right'].set_linewidth(bwith)
plt.yticks([])
plt.xlim([-21,21])
plt.plot(init_np, np.zeros_like(init_np), '.b', markersize=2, label='initial value Distri.')
plt.legend()
plt.subplot(312)
ax = plt.gca()
bwith = 1.2
ax.spines['bottom'].set_linewidth(bwith)
ax.spines['left'].set_linewidth(bwith)
ax.spines['top'].set_linewidth(bwith)
ax.spines['right'].set_linewidth(bwith)
plt.yticks([])
plt.xlabel('x')
plt.plot(xopt_gd, np.zeros_like(xopt_gd), '.r', markersize=2, label='optimal value Distri. by GD')
plt.xlim([-21,21])
plt.legend()
plt.subplot(313)
ax = plt.gca()
bwith = 1.2
ax.spines['bottom'].set_linewidth(bwith)
ax.spines['left'].set_linewidth(bwith)
ax.spines['top'].set_linewidth(bwith)
ax.spines['right'].set_linewidth(bwith)
plt.yticks([])
plt.plot(xopt_net_np, np.zeros_like(xopt_net_np), '.r', markersize=2, label='optimal value Distri. by Network')
plt.xlim([-21,21])
plt.legend()
plt.axes([0.125,0.275,0.25,0.07]) # list:[左下角水平坐标, 左下角垂直坐标, 宽度, 高度]
# plt.xticks(())
plt.yticks(())
plt.plot(xopt_net_np, np.zeros_like(xopt_net_np), '.r', markersize=1, label='optimal value Distr.')
plt.savefig('sol_scipy_ai.png', dpi=400, bbox_inches='tight')
plt.show()
执行上述代码后,可获得如下所示的可视化效果:

以上内容涵盖了Matplotlib在局部放大及图表美化方面的核心技巧,希望能为读者的学习与工作提供实用帮助,欢迎继续支持本站获取更多技术资源。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









