2014-02-07 4 views
1

2 차원 시계열 데이터를 플로팅하고 있는데 플롯의 특정 날짜를 X 또는 다른 마커로 표시하고 싶습니다. 예를 들어, 지난 6 개월 동안 각 날짜의 모든 데이터를 가지고 있고 크리스마스가이 음모에 있었던 곳을 지적하고 싶습니다. 이것을 달성하는 가장 쉬운 방법은 무엇입니까? 수동으로 할 수는 있지만 코드에서 자동화하는 것을 추가하는 것을 선호합니다.팬더 플롯에서 이벤트 포인트 표시하기

편집 : 지금까지 시도했습니다. 더 잘 작동하는 것이 있는지 확실하지 않습니다. 비교 문자열이 그대로 나뉘어져있는 이유는 날짜 개체를 비교하는 데 약간의 문제가있었습니다.

filt1.plot(figsize=(16,16)) 
filt3=filtered[(filtered.index.year==2012)&(filtered.index.month==12)&(filtered.index.day==25)]["Income_MA"] 
filt3.plot(style="ro") 
+0

효과가없는 시도의 예를 보여줄 수 있습니까? – tacaswell

+0

현재 솔루션으로 내 게시물을 편집했습니다. – mrdst

+3

당신은'annotate'을 찾고 계십니까?'axvline'입니까? – tacaswell

답변

0

tcaswell의 의견에 이어 다음과 같이 처리 할 수 ​​있습니까? 내가 수동으로 주석을 하나의 날짜를 설정했지만이 기능에 해당 코드를 포장하고 위해 전화를 꽤 쉽게해야하기 때문에이 깨지기 쉬운 솔루션입니다

enter image description here

주기

df = pd.Series(np.random.rand(180), index=pd.date_range(start=pd.datetime(2000, 9, 1), periods=180, freq='D')) 
xmas_date = pd.datetime(2000, 12, 25) 

myax = df.cumsum().plot() 
ylims = myax.get_ylim() 
myax.vlines(xmas_date, ylims[0], ylims[1]) 
myax.annotate("Xmas", xy=(xmas_date, ylims[1]), 
       xytext=(-12, 5), 
       textcoords='offset points') 
myax.set_ylim(ylims) 

관심있는 모든 날짜를 입력하십시오.