2

我正在尝试制作类似于以下内容的颜色幅度图:

BV图

我有三个包含完全相同数量的值的数组。

x1= BV(-.5 到 2)

x2= 温度。(30,000 到 3000)并且需要是对数刻度

y1= 幅度(因其他而异)

、和数组都是链接的x1,我想将它们一起绘制在散点图中。x2y1

我的代码:

#PLOTS
x1 = bv_array       #B-V
x2 = t_array        #Temperature
y1 = Vavg_array     #Magnitude
fig = plt.figure()

ax1 = fig.add_subplot(111)
#ax1.xlim(-.5,2)
ax1.plot(x1, y1,'b--')
ax2 = ax1.twiny()
ax2.plot(x2, y1, 'go')
ax2.set_xlabel('Temperature')
ax2.invert_xaxis()

#ax2.xscale('log')
#plt.xscale('log')
#plt.scatter(x,y)

#plt.scatter(bv_array, Vavg_array, s = 1)
plt.gca().invert_yaxis()

plt.show()
4

1 回答 1

1

如果我对您的理解正确,您应该能够在图表的右侧边缘选择一个轴应该对齐的点,matplotlib 将从那里获取它。

ax1 = fig.add_subplot(111)

ax1.xlim(-.5,2) # Set it in axis 1 coords

ax1.plot(x1, y1,'b--')
ax2 = ax1.twiny()
ax2.plot(x2, y1, 'go')
ax2.set_xlabel('Temperature')
ax2.invert_xaxis()

ax2.xlim(-2, 3) # Set it in axis 2 coords

要确定该点,请计算出哪个轴(线性或对数)沿 x 轴需要更多“空间”,将其限制设置为其最大值,然后将其转换为另一个轴的坐标空间以将其用作其限制.

于 2013-05-13T21:02:00.737 回答