【问题标题】:Add arrows to stock graph向股票图表添加箭头
【发布时间】:2013-10-03 16:16:37
【问题描述】:

我正在使用以下代码来显示股票数据:

from pandas.io.data import get_data_yahoo
import matplotlib.pyplot as plt 
data = get_data_yahoo("ADS", start = '2012-01-01', end = '2012-12-31')[['Close','Volume']] 
data.plot(subplots = True, figsize = (8, 8)); 
plt.title('Adidas-Aktie 2012')
plt.legend(loc = 'best')
plt.show()

在某些日期位置,我想添加直接指向图表的箭头。 我该怎么做?

【问题讨论】:

  • 欢迎来到 SO,Gigi Hofleitner。
  • 好的,谢谢!我之前检查过,但不确切知道如何访问子图。再说一次,我是初学者...:-)
  • AttributeError: 'numpy.ndarray' object has no attribute 'annotate' 是我在尝试将绘图定义为 ax1 并使用 ax1.annnotate 时遇到的错误。我认为它一定与上述熊猫数据的表示有关。

标签: python matplotlib pandas ipython


【解决方案1】:

试试,

 from pandas.io.data import get_data_yahoo
 import matplotlib.pyplot as plt 
 data = get_data_yahoo("ADS", start = '2012-01-01', end = '2012-12-31' [['Close','Volume']] 
 ax = data.plot(subplots = True, figsize = (8, 8)); 
 plt.title('Adidas-Aktie 2012')
 plt.legend(loc = 'best')
 ax[0].annotate('your text',xy =(locx,locy), xytext=(locx,locy), arrowprops = dict(facecolor = 'black')) # assuming the you want to annotate the first plot
 plt.show()

在上面的代码中,(locx,locy) 是您想要注释的文本的位置

【讨论】:

  • 我同时尝试了同样的方法,它成功了,非常感谢您的帮助!我的问题是我不知道如何访问每个子图数据。 # -- 编码:utf-8 -- from pandas.io.data import get_data_yahoo from datetime import datetime import matplotlib.pyplot as plt data = get_data_yahoo("ADS", start = '2007-01- 01', end = '2013-10-01')[['Close', 'Volume']] ax1=data.plot(subplots = True,figsize = (8, 8)); ax1[0].annotate("test",xy=(datetime(2012,03,01),130),arrowprops=dict(facecolor='red')) plt.title('Adidas-Aktie 2012') plt.图例(loc = 'best') plt.show()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-27
  • 1970-01-01
  • 2014-02-03
  • 2011-05-26
相关资源
最近更新 更多