通常,我试图了解 matplotlib 是否具有此功能。
我的 速度 (在x轴上)以英里/小时与 电源 (在y轴上)在kW图表中,我需要添加 旋转 (在第二个y轴上,到右边)和另一个 速度 (在第二个x轴上,在顶部),以km / h为单位。
以kW为单位的功率与以mph为单位的速度相关,而旋转与Power相关,而第二速度(在第二x轴上)只是第一速度乘以转换系数。
所以,我的问题是 - 我怎样才能在matplotlib中用两个x轴和两个y轴绘制x-y图?
答案 0 :(得分:7)
import matplotlib.pyplot as plt
x = range(1,21)
plt.xlabel('1st X')
plt.ylabel('1st Y')
plt.plot(x,x,'r') # against 1st x, 1st y
plt.axis([0,50,0,25])
plt.twinx()
plt.ylabel('2nd Y')
plt.plot(x,x,'g') # against 1st x, 2nd y
plt.axis([0,50,0,20])
plt.twiny()
plt.xlabel('2nd X')
plt.plot(x,x,'b') # against 2nd x, 2nd y
plt.axis([0,10,0,20])
plt.show()
答案 1 :(得分:4)
道歉,我误解了。
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.axes import Axes
rect = 0.1, 0.1, 0.8, 0.8
fig = plt.figure()
ax1 = fig.add_axes(rect)
t = np.arange(0.01, 10.0, 0.01)
ax1.plot(t, np.exp(t), 'b-') # Put your speed/power plot here
ax1.set_xlabel('Speed (mph)', color='b')
ax1.set_ylabel('Power', color='b')
ax2 = fig.add_axes(rect, frameon=False)
ax2.yaxis.tick_right()
ax2.yaxis.set_label_position('right')
ax2.xaxis.tick_top()
ax2.xaxis.set_label_position('top')
ax2.plot(t, np.sin(2*np.pi*t), 'r-') # Put your speed/rotation plot here
ax2.set_xlabel('Speed (kmph)', color='r')
ax2.set_ylabel('Rotations', color='r')
plt.show()