簡體   English   中英

縮放的inset,matplotlib中不同的x和y縮放比例

[英]Different x and y scale in zoomed inset, matplotlib

我正在嘗試使用matplotlib制作插圖。 目前我有一些類似於如何縮放圖像的一部分並在matplotlib中插入相同圖中的最后一個答案

那里有一個參數確定縮放系數。 但是,我想改變x和y軸之間的比例,即我想在x軸上放大更多。 (因此在示例中,正方形將映射到插圖中的矩形)。

我該如何實現這一目標?

這是一個工作示例:

import pylab as pl
import numpy as np
from mpl_toolkits.axes_grid1.inset_locator import zoomed_inset_axes
from mpl_toolkits.axes_grid1.inset_locator import mark_inset

x=np.linspace(0,1,100)
y=x**2

ax=pl.subplot(1,1,1)
ax.plot(x,y)

axins = zoomed_inset_axes(ax, 1, loc=2,bbox_to_anchor=(0.2, 0.55),bbox_transform=ax.figure.transFigure) # zoom = 6



axins.plot(x,y)

x1, x2= .4, .6
y1,y2 = x1**2,x2**2
axins.set_xlim(x1, x2)
axins.set_ylim(y1, y2)
mark_inset(ax, axins, loc1=1, loc2=3, fc="none", ec="0.5")
pl.show()

所以我想要做的是能夠分別改變插入的寬度和高度,而不改變插入的x和y范圍。

對於其他尋找此問題的人來說,事實證明這可以通過使用inset_axes()方法而不是zoomed_inset_axes()

例如:

axins = inset_axes(ax, 1,1 , loc=2,bbox_to_anchor=(0.2, 0.55),bbox_transform=ax.figure.transFigure) # no zoom

1,1節分別設置插圖的寬度和高度。 在此之后,使用xlim()ylim()設置軸的范圍,而不更改插入框的大小或形狀。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM