2014-10-04 4 views
3

저는 파이썬에서 ggplot 라이브러리를 사용하는 법을 배우려고합니다. 에서 몇 가지 예제를 익히고 있음, 나는 여러 시리즈의 시계열을 얻으려는 것으로 보았습니다. pandas.melt() 긴 형식의 데이터가 필요합니다.IPython과 ggplot을 사용하여 여러 개의 시계열에 대한 범례를 얻으려면 어떻게해야합니까?

Is there a way to plot a pandas series in ggplot? 을 모델로 사용하여 ggplot에 설정된 고기 데이터로 놀고 있습니다. 데이터 표시는 괜찮은 것으로 보이지만 전설은 없습니다. 예를 들어, 링크 맨 아래에서 범례를 수정하기위한 처방 이 실패합니다.

어딘가에 범례 디스플레이가 (IPython 노트북에서) 인라인 만 실패하는 것으로 보이는 게시물을 보았습니다. 나에게도 qt를 사용하여 범례를 표시하지 못했습니다 (Mac의 경우).

from ggplot import * 
import pandas as pd 
%matplotlib inline 

'고기형'데이터 프레임은 원래 형태입니다.

print meat.head (2) 

     date beef veal pork lamb_and_mutton broilers other_chicken \ 
0 1944-01-01 751 85 1280    89  NaN   NaN 
1 1944-02-01 713 77 1169    72  NaN   NaN 

    turkey 
0  NaN 
1  NaN 

'고기형'데이터 프레임이 긴 형식입니다.

meat_lng = pd.melt(meat, id_vars=['date']) 
print meat_lng.head (2) 

     date variable value 
0 1944-01-01  beef 751 
1 1944-02-01  beef 713 

plot = ggplot(aes(x='date', y='value', color='variable'), data=meat_lng) \ 
    + geom_line() \ 
    + ggtitle("Meat Production by Decade--Missing Legend") 
print plot 

.. 이미지 :: 나는 PNG 형식의 그래프를

<ggplot: (280905345)> 

output_6_0.png. 여기에 어떻게 삽입 할 수 있습니까?

나는 바닥에있는 몇 줄이 내게 전설이되기를 바랐다.

plot = ggplot(aes(x='date', y='value', color='variable'), data=meat_lng) \ 
    + geom_line(size=2.0) \ 
    + ggtitle("Meat Production by Decade") 

# Code that I hoped would fix the missing legend problem. 
fig = plot.draw() 
ax = fig.axes[0] 
offbox = ax.artists[0] 
offbox.set_bbox_to_anchor((1, 0.5), ax.transAxes) 
fig.show() 

::

--------------------------------------------------------------------------- 
IndexError        Traceback (most recent call last) 

<ipython-input-11-9cd7998d1503> in <module>() 
     4 fig = plot.draw() 
     5 ax = fig.axes[0] 
----> 6 offbox = ax.artists[0] 
     7 offbox.set_bbox_to_anchor((1, 0.5), ax.transAxes) 
     8 fig.show() 


IndexError: list index out of range 
+0

나는 정확하게이 문제가있다. 그것은 나에게는 완전히 신비한 일이다. – frabcus

+1

나는 이것을 matplotlib에 꽤 익숙한 사람들과 논의했다. 그들은 그것이 원래 matplotlib의 버그라고 생각했습니다. 나는 그것이 수정되었다고 말하는 몇 가지 참조를 발견했다. ggplot 제작자가 matplotlib 버그라고 생각합니다. matplotlib의 주요 작성자는 2 년 전에 사망했으며이 문제에 대한 마지막 작업이 2013 년 12 월경에 있었던 것처럼 보입니다. 마크 된 코드가 필요하다고 생각하지 않지만 어떤 경우에는 문제가 해결 된 경우 , 그것은 더 이상 않습니다. –

+0

같은 문제가 있습니다. 아직 해결되지 않았습니까? 범례가없는 Python ggplot 그래프는 전체 패키지에 약간의 결함이 있습니다. –

답변

1

당신이 ggplot 버전 0.5.8을 사용하여 수행 된 참조하고 예. 이후 버전에서 변경된 사항은 범례를 산포도에서 제거했습니다. ggplot의 github 페이지에 관해서는 아직 공개되지 않은 문제가 있습니다 만, 해결하기 전까지는 전설이 나타나기를 원하면 이전 버전을 사용하는 것이 좋습니다.