2012-11-19 42 views
0

我正在嘗試在我用matplotlib生成的燭臺圖表上添加一個系列(由[1,2,0,....]組成),但無法工作如何在圖表中包含每個特定蠟燭的標籤。基本上,我想製作一個圖表像這樣的:在matplotlib燭臺圖表中添加標籤

indicators http://www.linnsoft.com/charts/images/TD_Sequential.png

與數字(我的信號系列)剛剛超過或低於每個蠟燭的標籤。 有什麼辦法可以達到?

不知道是否有幫助,但我的系列是大熊貓據幀那種......

回答

3

這裏是源自一個例子 - http://matplotlib.org/examples/pylab_examples/finance_demo.html

請特別注意ax.annotate方法調用下面的代碼。

from pylab import * 
from matplotlib.dates import DateFormatter, WeekdayLocator, HourLocator, \ 
    DayLocator, MONDAY 
from matplotlib.finance import quotes_historical_yahoo, candlestick,\ 
    plot_day_summary, candlestick2 

# (Year, month, day) tuples suffice as args for quotes_historical_yahoo 
date1 = (2004, 2, 1) 
date2 = (2004, 4, 12) 


mondays = WeekdayLocator(MONDAY)  # major ticks on the mondays 
alldays = DayLocator()    # minor ticks on the days 
weekFormatter = DateFormatter('%b %d') # Eg, Jan 12 
dayFormatter = DateFormatter('%d')  # Eg, 12 

quotes = quotes_historical_yahoo('INTC', date1, date2) 
if len(quotes) == 0: 
    raise SystemExit 

fig = figure() 
fig.subplots_adjust(bottom=0.2) 
ax = fig.add_subplot(111) 
ax.xaxis.set_major_locator(mondays) 
ax.xaxis.set_minor_locator(alldays) 
ax.xaxis.set_major_formatter(weekFormatter) 
#ax.xaxis.set_minor_formatter(dayFormatter) 

#plot_day_summary(ax, quotes, ticksize=3) 
candlestick(ax, quotes, width=0.6) 

ax.xaxis_date() 
ax.autoscale_view() 
setp(gca().get_xticklabels(), rotation=45, horizontalalignment='right') 

import datetime 
dt = datetime.datetime(2004, 3, 8) 

# Annotating a specific candle 
ax.annotate('This is my special candle', xy=(dt, 24), xytext=(dt, 25), 
      arrowprops=dict(facecolor='black', shrink=0.05), 
      ) 

show() 

如果您運行此文件得到的情節,應該告訴你: -

enter image description here

+0

感謝您的答覆。我已經看到了這樣的代碼,但找不到一個簡單的方法來爲每個蠟燭顯示一個特定的標籤(與另一個相同長度的系列相關聯)。我想知道是否有一個真正的方法來做到這一點.. – mspadaccino

+0

我設法把你的代碼放在for循環中,現在它可以工作了...謝謝! – mspadaccino