2013-03-21 2 views
3

Я использую matplotlib для рисования диаграмм подсвечника.matplotlib подсвечники бары/коробки/ширина/расстояние

[Q] Параметр по умолчанию показывает панель с высоким низким уровнем, проходящую через окно открытия-закрытия. Я предпочел бы, чтобы окно с открытым минимумом было «выше» линии, так что я вижу только высокомакс (открывать, закрывать) и мин (открывать, закрывать) - как строки. Это возможно? Как?

Я ответил на свой вопрос и разместил свое сообщение с оригинальным вопросом, если он помогает кому-либо еще.

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

def fooCandlestick(ax, quotes, width=0.5, colorup='k', colordown='r', 
        alpha=1.0): 
    OFFSET = width/2.0 

    lines = [] 
    boxes = [] 
    for q in quotes: 
     t, op, cl, hi, lo = q[:5] 

     box_h = max(op, cl) 
     box_l = min(op, cl) 
     height = box_h - box_l 

     if cl>=op: 
      color = colorup 
     else: 
      color = colordown 

     vline_lo = Line2D(
      xdata=(t, t), ydata=(lo, box_l), 
      color = 'k', 
      linewidth=0.5, 
      antialiased=True, 
     ) 
     vline_hi = Line2D(
      xdata=(t, t), ydata=(box_h, hi), 
      color = 'k', 
      linewidth=0.5, 
      antialiased=True, 
     ) 
     rect = Rectangle(
      xy = (t-OFFSET, box_l), 
      width = width, 
      height = height, 
      facecolor = color, 
      edgecolor = color, 
     ) 
     rect.set_alpha(alpha) 
     lines.append(vline_lo) 
     lines.append(vline_hi) 
     boxes.append(rect) 
     ax.add_line(vline_lo) 
     ax.add_line(vline_hi) 
     ax.add_patch(rect) 
    ax.autoscale_view() 

    return lines, boxes 

[Q] ли Matplotlib установки ширины свечи, а также расстояние между каждой свечой поддержка?

Спасибо.

+0

Если вы нашли решение , лучше всего [ответить на свой вопрос] (http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/) – askewchan

ответ

1

Я не уверен, что расстояние, но:

  • Вы можете установить прозрачность ящиков с помощью alpha kwarg в candlestick. 1 должен быть непрозрачным.
  • Вы можете установить ширину, используя width kwarg, не уверен, что такое единицы, просто поиграйте с ними.

Например:

candlestick(ax, quotes, width=0.5, alpha=1.0) 

Ах, этот ответ добавляет пустые данные между как хак для увеличения INTER-свечного расстояния: https://stackoverflow.com/a/9713447/1730674

Смежные вопросы