Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Matplotlib中的非线性第二轴_Python_Matplotlib_Plot_Axis Labels - Fatal编程技术网

Python Matplotlib中的非线性第二轴

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

我想知道,如果没有任何解析公式,是否有办法在Matplotlib中添加第二个非线性x轴。或者,如果有一种方法可以为原始x轴中的每个数字创建不同的标签,则可以简化。下图说明了我在寻找什么。不幸的是,以前也有人问过类似的问题,但没有得到回答


由于问题明确要求两个轴之间存在任意关系(或拒绝澄清),因此下面是绘制任意关系的代码

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的示例。我确实在评论中澄清了我所说的武断是什么意思。