Python Matplotlib中的非线性第二轴
我想知道,如果没有任何解析公式,是否有办法在Matplotlib中添加第二个非线性x轴。或者,如果有一种方法可以为原始x轴中的每个数字创建不同的标签,则可以简化。下图说明了我在寻找什么。不幸的是,以前也有人问过类似的问题,但没有得到回答Python Matplotlib中的非线性第二轴,python,matplotlib,plot,axis-labels,Python,Matplotlib,Plot,Axis Labels,我想知道,如果没有任何解析公式,是否有办法在Matplotlib中添加第二个非线性x轴。或者,如果有一种方法可以为原始x轴中的每个数字创建不同的标签,则可以简化。下图说明了我在寻找什么。不幸的是,以前也有人问过类似的问题,但没有得到回答 由于问题明确要求两个轴之间存在任意关系(或拒绝澄清),因此下面是绘制任意关系的代码 import matplotlib.pyplot as plt import numpy as np a, b = (2*np.random.rand(2)-1)*np.ran
由于问题明确要求两个轴之间存在任意关系(或拒绝澄清),因此下面是绘制任意关系的代码
import matplotlib.pyplot as plt
import numpy as np
a, b = (2*np.random.rand(2)-1)*np.random.randint(1,500, size=2)
time = lambda T: a*T+b
Temp = lambda t: (t-b)/a
T = np.linspace(0, 100, 301)
y = T**2
fig, ax = plt.subplots()
fig.subplots_adjust(bottom=0.25)
ax.set_xlabel("Temperature")
ax.plot(T,y)
ax2 = ax.secondary_xaxis(-0.2, functions=(time, Temp))
ax2.set_xlabel("Time")
plt.show()
输出可能看起来像这样,但可能不同,因为关系是任意的,并且可能会根据所取的随机数而改变
这是否回答了您的问题?我认为可能会有解决方案,所以根据您的链接,我认为可以使用第二个轴作为“勾号”,然后通过将它们转换为字符串来添加时间值。我要试试看。我正在寻找两个x轴,如图所示,第二个x轴是非线性的,或者只是一个带值的标签。如果没有分析公式,还有什么可以定义两个轴之间的关系?(请注意,另一个问题没有得到回答,因为它同样不清楚,而不是因为没有解决方案。)请参见:secondary axis演示有一个使用interp的示例。我确实在评论中澄清了我所说的武断是什么意思。