我有一个数据框(前几行):
我可以用matplotlib.pyplot
进行绘制:
fig = plt.figure()
ax1 = fig.add_subplot(111, ylabel='Price')
df1[['Close']].plot(ax=ax1)
获得:
我想做的是在数据帧的位置列中的值2018-09-10 04:00:00
所指示的索引-1
上的三角形下方添加一个标记,以进行绘制。
我试图这样做:
fig = plt.figure()
ax1 = fig.add_subplot(111, ylabel='Price')
df1[['Close']].plot(ax=ax1)
ax1.plot(
df1.loc[df1.positions == -1.0].index,
df1.Close[df1.positions == -1.0],
'v', markersize=5, color='k'
)
我得到这样的情节:
有两件事。其中之一是,该指数被转换为可以在2055年发布的产品,我不明白为什么。另外,是否有一种方法可以仅使用第一个plot
调用在特定位置添加标记?我尝试使用markevery
,但没有成功。
答案 0 :(得分:2)
如果要合并熊猫图和matplotlib日期时间图,则需要以兼容模式绘制熊猫图
df1['Close'].plot(ax=ax1, x_compat=True)
这可能已经为您提供了所需的情节。
如果您不想使用matplotlib,则可以绘制过滤后的数据框
df1['Close'].plot(ax=ax1)
df1['Close'][df1.positions == -1.0].plot(ax=ax1, marker="v", markersize=5, color='k')