2014-04-01 3 views
1

다른 저울로 플롯 될 필요가있는 두 개의 서로 다른 시계열을 나타내는 두 개의 촛대 형 차트를 플로팅하고 싶습니다. documentation 다음 나는 이런 식으로 뭔가해야 가정두 개의 저울을 가진 촛대 형 차트

from pylab import * 
from matplotlib.finance import candlestick 

price1 = [(734542.0, 1.326, 1.3287, 1.3322, 1.3215), (734543.0, 1.3286, 1.3198, 1.3292, 1.3155), (734546.0, 1.321, 1.3187, 1.3284, 1.3186), (734547.0, 1.3186, 1.3133, 1.3217, 1.308)] 
price2 = [(734542.0, 1.5819, 1.5819, 1.5886, 1.5792), (734543.0, 1.5817, 1.5756, 1.5851, 1.5729), (734546.0, 1.578, 1.5766, 1.583, 1.5753), (734547.0, 1.5765, 1.5692, 1.5772, 1.5645)] 

fig, ax = subplots() 
candlestick(ax,price1,width=0.5) 
ax.xaxis_date() 
ax.autoscale_view() 

ax2 = ax.twinx() 
candlestick(ax2,price2,width=0.5) 
ax2.xaxis_date() 
ax2.autoscale_view() 

plt.show() 

내가 얻으려고하는 것은 this 같은입니다; 그러나이 코드를 실행하는 것으로 두 가격 계열이 다소 "합쳐져"예상 효과를 내지 못하는 것을 볼 수 있습니다. 누구든지이 일을 도와주고 내가 뭘 잘못하고 있는지 말해 줄 수 있니?

편집 : 기본적으로 두 가격대의 차이점은 볼 수 없습니다. 당신이 그 플롯 첫 번째 가격 시리즈를이 코드를 실행한다면 :

from pylab import * 
from matplotlib.finance import candlestick 

price1 = [(734542.0, 1.326, 1.3287, 1.3322, 1.3215), (734543.0, 1.3286, 1.3198, 1.3292, 1.3155), (734546.0, 1.321, 1.3187, 1.3284, 1.3186), (734547.0, 1.3186, 1.3133, 1.3217, 1.308)] 
price2 = [(734542.0, 1.5819, 1.5819, 1.5886, 1.5792), (734543.0, 1.5817, 1.5756, 1.5851, 1.5729), (734546.0, 1.578, 1.5766, 1.583, 1.5753), (734547.0, 1.5765, 1.5692, 1.5772, 1.5645)] 

fig, ax = subplots() 
candlestick(ax,price1,width=0.5) 
ax.xaxis_date() 
ax.autoscale_view() 
""" 
ax2 = ax.twinx() 
candlestick(ax2,price2,width=0.5) 
ax2.xaxis_date() 
ax2.autoscale_view() 
""" 
plt.show() 

당신은 제 1 및 제 2의 차이는 떨어져 나를 생각하게 값에 약간의 작은 변화에 대해 거의 아무것도 볼 수 있습니다 겹치는 부분이 있습니다. 두 가격 시리즈를 어떻게 구별 할 수 있고 두 가지 가격대가 명확하게 구분할 수 있습니까?

+0

안녕하세요 @MatteoNNZ. "관절"은 무엇을 의미합니까? 두 촛대가 너무 겹치다는 뜻입니까? – Ffisegydd

+0

안녕하세요. @Ffisegydd 정말 아닙니다. 나는 Stack Overflow에 어떤 종류의 버그가 있는지 알지 못하지만 그림을 게시 할 수 없다. (내가 로봇이라고 생각하고 질문 만 쓸 수있다 : /) 그래서 나는 정확히 당신을 보여줄 수 없다. 내가 의미하는 것을 나타 내기 위해 질문을 편집하려고합니다. –

답변

2

위의 답을 보았습니다. 그러나 데이터가 무엇인지 알고 주변에서 재생할 수있는 경우에만 작동합니다. 따라서 겹치지 않습니다. 당신이 정말로 필요로하는 것은 바의 형식을 가지고 놀아 다니는 것입니다. 방법에 대한 예를 들면 바보 같은 예가 있습니다. 나는 하나의 색상을 변경하려면 아래의 색상을 설정 colourdown (0.5 절반 볼 수 있습니다)

from Core.Models.Program import Program 
from pylab import * 
from matplotlib.finance import candlestick 

price1 = [(734542.0, 1.326, 1.3287, 1.3322, 1.3215), (734543.0, 1.3286, 1.3198, 1.3292, 1.3155), (734546.0, 1.321, 1.3187, 1.3284, 1.3186), (734547.0, 1.3186, 1.3133, 1.3217, 1.308)] 
price2 = [(734542.0, 1.5819, 1.5819, 1.5886, 1.5792), (734543.0, 1.5817, 1.5756, 1.5851, 1.5729), (734546.0, 1.578, 1.5766, 1.583, 1.5753), (734547.0, 1.5765, 1.5692, 1.5772, 1.5645)] 

fig, ax = subplots() 
candlestick(ax,price1,width=1,colorup="blue",colordown="orange") 
ax.xaxis_date() 

ax2 = ax.twinx() 

candlestick(ax2,price2,width=.5,colordown="green",alpha=.5) 
ax2.xaxis_date() 


plt.show() 

알파 투명도를 설정 폭이 다른 등으로 colorup 그들을 투명성을 추가하도록 (가 시작되면 최대 색상 높은 종료 끝내는 것보다) 너비가 너비를 조정합니다.

시간이 없어서 좋을 때까지 놀아 볼 시간이 없습니다.

참고 : Matplotlib은 플롯 순서에 따라 차트를 '그리기'때문에 마지막으로 플롯 한 차트가 맨 위에 표시됩니다.

+0

+1, 규모를 수정하는 것보다 나은 해결책은 내 대답을 삭제하겠습니다. – Ffisegydd

+0

+2라고 답할 것이고, 나는 그 방법이 작동하는 더 긴 시리즈를 플로팅하여 깨달았을뿐입니다. 그리고 필요한 것은 모두 서로 구별하기 위해 막대를 포맷팅하는 것입니다. 감사! –

관련 문제