Python 在matplotlib中创建非对称轴

Python 在matplotlib中创建非对称轴,python,matplotlib,graph,Python,Matplotlib,Graph,我试图创建下图中的图形。我是matplotlib的新手,所以我不知道如何在不插入一些数据的情况下创建轴。例如,如果a具有x和y以及绘图(x,y),则将创建图形并创建轴,但轴将与数据关联。在graph attach中,曲线是等值线,因此数据的相关性并不完全取决于轴(取决于我在代码中描述的函数) 如何继续?您可以使用plt.xlim和plt.ylim设置轴上的限制。使用plt.grid可以控制网格线的显示方式设置主定位器可以设置刻度和相应网格线的位置 文本的位置可以通过首先在对应于x=40的行上找

我试图创建下图中的图形。我是matplotlib的新手,所以我不知道如何在不插入一些数据的情况下创建轴。例如,如果a具有x和y以及绘图(x,y),则将创建图形并创建轴,但轴将与数据关联。在graph attach中,曲线是等值线,因此数据的相关性并不完全取决于轴(取决于我在代码中描述的函数)


如何继续?

您可以使用
plt.xlim
plt.ylim
设置轴上的限制。使用
plt.grid
可以控制网格线的显示方式<代码>设置主定位器可以设置刻度和相应网格线的位置

文本的位置可以通过首先在对应于x=40的行上找到y来计算。如果y太低,我们可以在y=-1500对应的线上计算x值。对于文本的旋转,我们可以采用直线的切线,这需要通过绘图的纵横比进行校正。要使旋转在绘图大小更改时仍然有效,可以设置固定的纵横比

以下是一些演示代码,可以帮助您入门:

导入matplotlib.pyplot作为plt
从matplotlib.ticker导入MultipleLocator、FormatStrFormatter
将numpy作为np导入
图,ax=plt.子批次()
纵横比=1/300
ax.set_aspect(aspect)#需要固定的纵横比,以便文本旋转与行旋转保持相等
对于范围内的iso(-5000、16001、1000):
x1=25+iso/100
x2=-50
y1=-1000
y2=7000+iso
plt.绘图([x1,x2],[y1,y2],c='crimson',如果iso%5000==0,则lw=2,否则为0.5)
如果iso%5000==0:
#xt,yt:x,y值表示文本;当x=40时,首先尝试y位置;如果太小,则为y查找x位置=-1500
xt=40
yt=(y1*(xt-x2)+y2*(x1-xt))/(x1-x2)
如果yt

知道如何添加与曲线对齐的标签,使其与图像相等吗?我想我应该做一个if等于你为lw做的,但我不能配置位置。。。