python - 放大插图中不同的 x 和 y 比例,matplotlib

标签 python matplotlib plot insets

我正在尝试使用 matplotlib 制作插图。目前我有类似最后一个答案的东西 How to zoomed a portion of image and insert in the same plot in 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() 设置轴的范围,而不更改插入框的大小或形状。

关于python - 放大插图中不同的 x 和 y 比例,matplotlib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24035118/

相关文章:

python - 有没有一种标准的方法来获取 python 中的用户配置目录

python - 从Python中的元组列表创建vtkPolyData对象

python - 即使在我的代码中合并 "linespace = ' None' "后,连接图表上点的线也没有消失

python绘制数据框

python - 如何计算 python pandas dataframe 中的复合指标

python - 我可以将 IDLE 配置为自动将制表符转换为空格吗?

python - 循环通过一个函数来绘制几个子图,Python

matplotlib - 使用 Mollweide 投影的 Pylab 等高线图创建人工制品

r - R : plot & the result is “plot.new has not been called yet”

Excel 用连续 x 轴绘制时间序列频率