2017-03-15 1 views
2

제목이 표시 될 때 종류 = '바'가 아니라 종류 = '라인'이 같은 줄거리를 만들

import pandas as pd 
import numpy as np 
import matplotlib.pyplot as plt 
import itertools 

df = pd.DataFrame(np.random.randn(20, 10), columns=list('ABCDEFGHIJ')) 

ax = df.plot(kind='bar', subplots=True, layout=(4, 3), sharex=True, sharey=False) 

나는 열 머리글이 제목으로 사용되는 경우 다음과 같은 그래프를 얻을 수 줄거리의 :

enter image description here

내가 kind='line'kind='bar'을 변경

은, 제목이 그려진 전설하지만 단지가있다.

enter image description here

이것을 달성하는 직접적인 방법이된다 다음 적절한 출력을 제공

for axi in itertools.chain.from_iterable(ax): 
    try: 
     axi.set_title(axi.get_legend_handles_labels()[1][0], {'size': 16}) 
    except: 
     pass 

:

해결 방법은 이런 .get_legend_handles_labels()를 사용하는 것? plot은 플래그 kind에 따라 왜 다르게 동작합니까?

+0

팬더 버그 추적기에 문제가 있습니다. 나에 대한 모순처럼 보입니다. – languitar

+0

@languitar 누군가가 무슨 일이 일어나고 있는지 알기 위해 조금 기다릴 것입니다. 내가 사용할 수있는 해결 방법에 대한 권장 사항은 무엇입니까? – Cleb

+0

예, [pandas issue page] (https://github.com/pandas-dev/pandas/issues)에 문제를 제기해야합니다. – ImportanceOfBeingErnest

답변

2

해결 방법 :

  1. 현재 development version of plotting.py를 가져옵니다. 이렇게하면 인수 인 titles 인수 목록을 제공 할 수 있습니다.
  2. 사용

    ax = df.plot(kind="line",subplots=True, layout=(4, 3), 
         sharex=True, sharey=False, title=list(df.columns.values)) 
    

    은 부가 적 줄거리 타이틀을 얻을 수 있습니다.

물론 축 제목 설정을 포함하도록 코드를 직접 변경해 볼 수도 있습니다. barplot의 코드는 현재 개발 버전의 2006 년 라인에 있습니다. 라인 1757 주위의 LinePlot의 _make_plot() 메소드에 배치해야하며, 간단한 ax.set_title(label)이면 충분합니다. 문제는 판다가 그것을 재건하도록 요구할 것입니다. (나는 테스트하지 않았다).

+0

[line no.1732] (https://github.com/pandas-dev/pandas/blob/v0.19.2/pandas/tools/plotting.py#)에'ax.set_title (label)'을 추가했다고 생각합니다. L1732)로 충분합니다. –

+0

좋아요, 전체 파일을 복사하고'title = ... '부분을 사용했습니다.이 부분이 실제로 효과가있었습니다. 감사합니다 (upvoted). 언제나처럼, 나는 잠시 기다렸다가 대답을 받아 들인다. – Cleb