2013-03-21 56 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 2013-03-25 15:17:14

回答

1

我不知道間距,但:

  • 您可以使用alpha kwarg到candlestick設置框的透明度。 1應該是不透明的。
  • 你可以使用width kwarg來設置寬度,不確定單位是什麼,只要和他們一起玩。

例如:

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

嗯,這個答案之間增加了空數據作爲一個黑客以增加相互燭臺間隔: https://stackoverflow.com/a/9713447/1730674