在matplotlib中创建两个xax,其中刻度之间的转换函数未知

2024-05-29 01:57:49 发布

您现在位置:Python中文网/ 问答频道 /正文

使用matplotlib,可以使用twiny()轻松获得单线图的两个x轴。在

如果两个x刻度之间的转换可以用函数来描述,则可以通过应用此转换函数来设置相应的刻度。 (此处描述:How to add a second x-axis in matplotlib

如果尺度之间的变换函数未知,如何实现这一点呢?在

编辑: 想象一下以下情况: 你有两个温度计,都在测量温度。温度计1的测量单位是°C,温度计2的测量单位是假想单位,我们称之为°D。基本上,你知道的是,随着温度的升高,D也在增加。另外,两个温度计都有一定程度的误差。 两个温度计测量相同的物理量,因此我应该能够用一条线和两个刻度来表示它们。然而,与绘制温度(°C vs.K或°F)相比,标度之间的转换是未知的。在

这意味着,例如,我有:

     import numpy as np
     from matplotlib import pyplot as plt
     temp1 = np.sort(np.random.uniform(size=21))
     temp2 = np.sort(np.random.uniform(low=-20, high=20, size=21))
     y = np.linspace(0,1,21, endpoint=True)

temp1和temp2之间存在转换函数,但未知。Y、 但是,是一样的。在

另外,我知道temp1和y都局限于范围(0,1)

现在我们可以这样画:

^{pr2}$

这导致以下情节: output plot 您可以看到这两条曲线不相同,并且绘图不是正方形的(如果不使y轴成对)。在

所以,这就是我想要的(我自己无法实现的):

  • 通过两个x轴在二维线图中绘制三维阵列(temp1、temp2、y)
  • Matplotlib应该“自动”设置temp2的记号,这样曲线(temp1,y)和(temp2,y)是一致的

有解决办法吗?在

谢谢你的帮助!在


Tags: 函数importmatplotlibasnp绘制单位random

热门问题