2013-03-21 5 views
3
내가 촛대 차트를 그릴하기 matplotlib를 사용하고

.하기 matplotlib 촛대 바/박스/폭/간격

은 [Q]를 기본 설정 개폐 통해 공급되는 고저 바를 나타낸다. 나는 high-max (open, close)와 min (open, close) -low를 라인으로 만 볼 수 있도록 open-low 박스를 라인보다 "위"에 두는 것을 선호한다. 그게 가능하니? 방법?

나는 내 자신의 질문에 답변했으며 다른 사람들에게 도움이된다면 원래의 질문으로 내 결과를 게시하고 있습니다.

이렇게하는 유일한 방법은 하나가 아닌 두 개의 라인을 그리 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

나는 간격에 대해 잘 모르겠지만, :

  • 당신은 candlestickalpha kwarg를 사용하여 상자의 투명도를 설정할 수 있습니다. 1은 불투명해야합니다.
  • 당신은 width kwarg를 사용하여 폭을 설정할 수, 단위, 그냥 그들과 함께 플레이하는 확실하지. 예를 들어

는 :

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

아,이 대답은 간 촛대 간격을 늘릴 수있는 해킹 사이에 빈 데이터를 추가


는 : https://stackoverflow.com/a/9713447/1730674