我在matplotlib中有以下数据和图表:
chart_ts = [datetime(2013, 1, 1, 17, 0),
datetime(2013, 1, 1, 17, 1),
datetime(2013, 1, 1, 17, 2),
datetime(2013, 1, 1, 17, 3),
datetime(2013, 1, 1, 17, 4),
datetime(2013, 1, 1, 17, 5),
datetime(2013, 1, 1, 17, 6),
datetime(2013, 1, 1, 17, 7),
datetime(2013, 1, 1, 17, 8),
datetime(2013, 1, 1, 17, 9)]
chart_close = [1.32034,
1.32046,
1.3205,
1.32025,
1.32025,
1.32026,
1.32034,
1.32035,
1.32035,
1.32063]
mp_close = [1.320060, 1.320055, 1.320050, 1.320045, 1.320040, 1.320035, 1.320030, 1.320025]
mp_value = [5, 6, 8, 10, 3, 5, 6, 2]
%matplotlib inline
mpl.rcParams['interactive'] = False
mpl.rcParams['figure.figsize'] = (8, 8.0)
# plot
plt.plot(chart_ts,chart_close)
plt.gcf().autofmt_xdate()
plt.show()
通过运行以上代码,我得到以下结果:
到目前为止,还不错。你知道吗
现在我想在第一个图表上画出mp\u close和mp\u value作为水平条。 期望的结果是这样的(它只是一个手绘模型,而不是一个精确的比例表示):
但是如果我只是添加新的绘图,我发现用于两个图表的X轴是不一样的。我该如何达到这个结果?
在@importanceofbeingernest评论之后,我尝试了以下方法:
chart_ts = [datetime(2013, 1, 1, 17, 0),
datetime(2013, 1, 1, 17, 1),
datetime(2013, 1, 1, 17, 2),
datetime(2013, 1, 1, 17, 3),
datetime(2013, 1, 1, 17, 4),
datetime(2013, 1, 1, 17, 5),
datetime(2013, 1, 1, 17, 6),
datetime(2013, 1, 1, 17, 7),
datetime(2013, 1, 1, 17, 8),
datetime(2013, 1, 1, 17, 9)]
chart_close = [1.32034,
1.32046,
1.3205,
1.32025,
1.32025,
1.32026,
1.32034,
1.32035,
1.32035,
1.32063]
mp_close = [1.320060, 1.320055, 1.320050, 1.320045, 1.320040, 1.320035, 1.320030, 1.320025]
mp_value = [5, 6, 8, 10, 3, 5, 6, 2]
%matplotlib inline
mpl.rcParams['interactive'] = False
mpl.rcParams['figure.figsize'] = (8, 8.0)
# plot
fig, ax1 = plt.subplots()
ax1.plot(chart_ts,chart_close)
plt.gcf().autofmt_xdate()
ax2 = ax1.twiny()
ax2.barh(mp_close, mp_value, align='center')
plt.show()
但我得到:
现在我怀疑我很快就要得到它了,但我会错过:
对于酒吧的宽度,我试过:
ax2.barh(mp_close, mp_value, align='center', width=0.00003)
但我得到:
TypeError: barh() got multiple values for argument 'width'
目前没有回答
相关问题 更多 >
编程相关推荐