猿问

在特定点向绘图添加标记

我有一个数据框(前几行):

我可以用matplotlib.pyplot以下方式绘制它:


fig = plt.figure()

ax1 = fig.add_subplot(111,  ylabel='Price')


df1[['Close']].plot(ax=ax1)

要得到:

http://img3.mukewang.com/613c0be70001884d04400280.jpg

我想要做的是在由数据框位置列中的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'

)

我得到这样的情节:

http://img1.mukewang.com/613c0bf500018fd703680232.jpg

所以有两件事。一个是指数被转换为指向 2055 年的东西,我不明白为什么。另外,有没有办法只使用第一次plot调用就在特定位置添加标记?我尝试使用markevery但没有成功。


千巷猫影
浏览 225回答 1
1回答

心有法竹

如果你想结合熊猫图和 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')
随时随地看视频慕课网APP

相关分类

Go
我要回答