Matplotlib:一行,以不同单位的两个相关x轴绘制?

Kyl*_*yle 12 python matplotlib

我有一个y变量,我试图在图的顶部和底部绘制两个相关的x轴(例如,y ="立方体中的数量",x1 ="立方体的边长",x2 ="立方体的体积").我在yumpy数组中有y,x1,x2.我的x1和x2之间的关系是一对一和单调的,但并不简单,它们在不同的方向上增加,如"边长"和"反向体积".我尝试过使用twiny()和twin(),但这些似乎是为了绘制不同的y变量而设计的.有任何想法吗?感谢大家!

下面是我尝试做的事情的一个例子,除了一行而不是符号.这个想法是,例如,sigma = 0.4和M = 2e15是等价的,并且对于一个点是可互换的标签.

alt text http://img580.imageshack.us/img580/4554/screenshotuy.png

Ben*_*ier 8

对于不同的x尺度使用twiny()(将其视为"共享的y轴").一个稍微改编自matplotlib文档的示例:

import numpy as np
import matplotlib.pyplot as plt

# plot f(x)=x for two different x ranges
x1 = np.linspace(0, 1, 50)
x2 = np.linspace(0, 2, 50)
fig = plt.figure()

ax1 = fig.add_subplot(111)
ax1.plot(x1, x1,'b--')

ax2 = ax1.twiny()
ax2.plot(x2, x2, 'go')

plt.show()
Run Code Online (Sandbox Code Playgroud)

如果您只是想要第二个轴将第二个数据集绘制为不可见.

ax2.plot(x2, x2, alpha=0)
Run Code Online (Sandbox Code Playgroud)

  • 很高兴看到你是如何做到这一点的,@凯尔. (2认同)