局部放大图的绘制(Python实现)

局部放大图的绘制(Python实现)在复杂的数据分析与科学研究领域 制作局部放大图是一种不可或缺的可视化策略 它在增强数据表达的精确性与深度上扮演着至关重要的角色

目录

简介:

2 绘制局部放大图的主要步骤

2.1 数据准备

2.2 主图绘制

2.2 局部图绘制

2.3 设置放大区间(目视范围)

2.4 建立母图和子图连接关系

3 结果展示

4 代码总汇 


简介:

       在复杂的数据分析与科学研究领域,制作局部放大图是一种不可或缺的可视化策略,它在增强数据表达的精确性与深度上扮演着至关重要的角色。面对海量数据点或纷繁复杂的数据结构时,全局视图往往难以细致入微地展现所有关键信息,特别是那些藏匿于庞大背景之下的细微变化与独特特征。通过精心选取并放大数据的特定部分,我们能够突破宏观层面的局限,直接突显出这些精细的结构与模式,使得原本隐匿不显的细节跃然眼前,极大地提升了信息的可察觉性。

2 绘制局部放大图的主要步骤:

2.1 数据准备:

x = np.arange(0.1,30,0.2) y1 =np.sin(x)*100/x y2=np.sin(x*x)

2.2 主图绘制:

ax.plot(x, y1, color='g', linestyle=':', linewidth=2,marker='o', markersize=3, markeredgecolor='green', markerfacecolor='C2') ax.plot(x, y2, color='r', linestyle=':', linewidth=2,marker='o', markersize=3, markeredgecolor='red', markerfacecolor='C3') 

2.2 局部图绘制:

axins = ax.inset_axes((0.45, 0.5, 0.4, 0.3))#0.45,0.5是比例原图的这里可以调整发大图的位置 #在子坐标系中绘制原始数据 axins.plot(x, y1, color='g', linestyle=':', linewidth=2,marker='o', markersize=3, markeredgecolor='green', markerfacecolor='C2') axins.plot(x, y2, color='r', linestyle=':', linewidth=1,marker='o', markersize=3, markeredgecolor='red', markerfacecolor='C3')

2.3 设置放大区间(目视范围):

axins.set_xlim(22, 24) axins.set_ylim(-6,6) 

2.4 建立母图和子图连接关系:

axins.set_xlim(22, 24) axins.set_ylim(-6,6) 

3 结果展示

4 代码总汇 

import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.axes_grid1.inset_locator import mark_inset #数据准备 x = np.arange(0.1,30,0.2) y1 =np.sin(x)*100/x y2=np.sin(x*x) #绘图 fig, ax = plt.subplots(1, 1, figsize=(8, 6)) ax.tick_params(axis="both", which="major", direction="in", width=2, length=5) plt.style.use('seaborn-white') # 设置背景风格 plt.tick_params(labelsize=13) # 设置坐标轴刻度字字体大小 plt.xlabel('X', fontsize=18) # 设置x轴标题及字体大小 plt.ylabel('Y', fontsize=18) # 设置y轴标题及字体大小 ax.plot(x, y1, color='g', linestyle=':', linewidth=2,marker='o', markersize=3, markeredgecolor='green', markerfacecolor='C2') ax.plot(x, y2, color='r', linestyle=':', linewidth=2,marker='o', markersize=3, markeredgecolor='red', markerfacecolor='C3') plt.legend(["y1","y2"], ncol=3,loc='upper right',fontsize=16)#绘制图样样例 #更改框架 # ax.spines['bottom'].set_linestyle('dashed')#变为虚线 ax.spines['bottom'].set_linewidth(2)#改变线条 ax.spines['left'].set_linewidth(2)#改变线条 # # 隐藏绘图框架 ax.spines['top'].set_visible(False) ax.spines['right'].set_visible(False) # 将左侧脊柱的起始位置设置为(-1, -1) # ax.spines['left'].set_bounds(-1, -1) #更改框架颜色 ax.spines['bottom'].set_edgecolor('black') ax.spines['left'].set_edgecolor('black') #嵌入绘制局部放大图的坐标系 axins = ax.inset_axes((0.45, 0.5, 0.4, 0.3))#0.45,0.5是比例原图的这里可以调整发大图的位置 #在子坐标系中绘制原始数据 axins.plot(x, y1, color='g', linestyle=':', linewidth=2,marker='o', markersize=3, markeredgecolor='green', markerfacecolor='C2') axins.plot(x, y2, color='r', linestyle=':', linewidth=1,marker='o', markersize=3, markeredgecolor='red', markerfacecolor='C3') axins.tick_params(axis="both", which="major", direction="in", width=2, length=5,color='lightgreen')#设置主刻度线 # axins.tick_params(axis="both", which="minor", direction="in", width=2, length=5) axins.spines['bottom'].set_edgecolor('lightgreen') axins.spines['left'].set_edgecolor('lightgreen') axins.spines['top'].set_edgecolor('lightgreen') axins.spines['right'].set_edgecolor('lightgreen') #设置放大区间 #调整子坐标系的显示范围自己根据图像调整即可 axins.set_xlim(22, 24) axins.set_ylim(-6,6) #建立父坐标系与子坐标系的连接线 #loc1 loc2: 坐标系的四个角 #1 (右上) 2 (左上) 3(左下) 4(右下) mark_inset(ax, axins, loc1=3, loc2=4, fc="none", ec='lightgreen', lw=2,linestyle=':') #显示 plt.show()

参考文献:Matplotlib 局部放大图画法 | 码农家园 

今天的文章 局部放大图的绘制(Python实现)分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2024-12-16 18:27
下一篇 2024-12-16 18:21

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/87853.html