добавление меток к свечному графику в matplotlib

Я пытаюсь добавить серию (состоящую из списка [1,2,0,....]) на график свечей, который я создал с помощью matplotlib, но не могу понять, как включить эти метки для каждой конкретной свечи в график. В основном я хотел бы создать диаграмму, подобную этой:

indicators
(источник: linnsoft.com)

с метками с цифрами (моя серия сигналов) чуть выше или ниже каждой свечи. Есть ли способ, которым я могу достичь этого?

Не знаю, поможет ли это, но моя серия относится к типу pandas DataFrame...


person mspadaccino    schedule 19.11.2012    source источник


Ответы (1)


Вот пример, полученный из - 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()

Результирующий график, если вы запустите этот файл, должен показать вам: -

введите здесь описание изображения

person Calvin Cheng    schedule 19.11.2012
comment
Спасибо за ответ. Я уже видел этот фрагмент кода, но не смог найти простой способ показать для каждой свечи одну конкретную метку (связанную с другой, той же длины, серией). Интересно, есть ли реальный способ сделать это.. - person mspadaccino; 20.11.2012
comment
Мне удалось включить ваш фрагмент кода в цикл for, и теперь он работает... Спасибо! - person mspadaccino; 20.11.2012