Python 绘制局部放大图
生活随笔
收集整理的這篇文章主要介紹了
Python 绘制局部放大图
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
請務必先看此文章: 【Python】Matplotlib局部放大圖畫法(https://juejin.cn/post/6844904183548608520)
這篇文章已經非常詳細,但是沒有數據,所以自己生成了一些數據,以及對部分代碼進行了函數封裝,以便于二次使用。
import matplotlib.pyplot as plt from matplotlib.patches import ConnectionPatch import numpy as npdef zone_and_linked(ax,axins,zone_left,zone_right,x,y,linked='bottom',x_ratio=0.05,y_ratio=0.05):"""縮放內嵌圖形,并且進行連線ax: 調用plt.subplots返回的畫布。例如: fig,ax = plt.subplots(1,1)axins: 內嵌圖的畫布。 例如 axins = ax.inset_axes((0.4,0.1,0.4,0.3))zone_left: 要放大區域的橫坐標左端點zone_right: 要放大區域的橫坐標右端點x: X軸標簽y: 列表,所有y值linked: 進行連線的位置,{'bottom','top','left','right'}x_ratio: X軸縮放比例y_ratio: Y軸縮放比例"""xlim_left = x[zone_left]-(x[zone_right]-x[zone_left])*x_ratioxlim_right = x[zone_right]+(x[zone_right]-x[zone_left])*x_ratioy_data = np.hstack([yi[zone_left:zone_right] for yi in y])ylim_bottom = np.min(y_data)-(np.max(y_data)-np.min(y_data))*y_ratioylim_top = np.max(y_data)+(np.max(y_data)-np.min(y_data))*y_ratioaxins.set_xlim(xlim_left, xlim_right)axins.set_ylim(ylim_bottom, ylim_top)ax.plot([xlim_left,xlim_right,xlim_right,xlim_left,xlim_left],[ylim_bottom,ylim_bottom,ylim_top,ylim_top,ylim_bottom],"black")if linked == 'bottom':xyA_1, xyB_1 = (xlim_left,ylim_top), (xlim_left,ylim_bottom)xyA_2, xyB_2 = (xlim_right,ylim_top), (xlim_right,ylim_bottom)elif linked == 'top':xyA_1, xyB_1 = (xlim_left,ylim_bottom), (xlim_left,ylim_top)xyA_2, xyB_2 = (xlim_right,ylim_bottom), (xlim_right,ylim_top)elif linked == 'left':xyA_1, xyB_1 = (xlim_right,ylim_top), (xlim_left,ylim_top)xyA_2, xyB_2 = (xlim_right,ylim_bottom), (xlim_left,ylim_bottom)elif linked == 'right':xyA_1, xyB_1 = (xlim_left,ylim_top), (xlim_right,ylim_top)xyA_2, xyB_2 = (xlim_left,ylim_bottom), (xlim_right,ylim_bottom)con = ConnectionPatch(xyA=xyA_1,xyB=xyB_1,coordsA="data",coordsB="data",axesA=axins,axesB=ax)axins.add_artist(con)con = ConnectionPatch(xyA=xyA_2,xyB=xyB_2,coordsA="data",coordsB="data",axesA=axins,axesB=ax)axins.add_artist(con)- 生成數據
- 可視化數據
- 添加局部放大圖
- 使用不同參數進行不同區域的放大
總結
以上是生活随笔為你收集整理的Python 绘制局部放大图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Amazing Css:自定义下划线样式
- 下一篇: python--查看函数帮助文档及快捷键