2013-06-29 6 views
-1

나는 시계열 데이터에서 팬더의 막 대형 차트를 작성하려고합니다. http://pandas.pydata.org/pandas-docs/stable/visualization.html#bar-plots시계열 데이터에 대한 팬더의 막 대형 차트

몇 가지 해결 방법은 :

문서는 가능하지 않다라고?

이 내가

df['korisnika'].diff().plot(kind='bar', ax=axs1[1], title='SOMETHING', marker='o') 

난 그냥 종류 = '바'

을 추가 할 경우 내 코드

# there must be ORDER BY, other wise rows will not be ordered 
df = sql.read_frame("SELECT * FROM hzmo_report ORDER BY datum;", cnx, index_col='datum') 

df.index = pd.to_datetime(df.index) # converting to DatetimeIndex 

df['korisnika'].plot(ax=axs1[0], title='SOMETHING', marker='o') 
df['korisnika'].diff().plot(ax=axs1[1], title='SOMETHING', marker='o') # i would like this to be bar plot 

입니다 내가 얻을 :

--------------------------------------------------------------------------- 
AttributeError       Traceback (most recent call last) 
<ipython-input-109-d41eb2b2e3a7> in <module>() 
    36 fig1.suptitle('Umirovljenici', fontsize=16) 
    37 df['korisnika'].plot(ax=axs1[0], title='Broj korisnika mirovine', marker='o') 
---> 38 (df['korisnika'].diff()).plot(ax=axs1[1], kind='bar', title='Apsolutna razlika naspram prethodnog mjeseca', marker='o') 
    39 #df['korisnika'].diff().hist() 
    40 

C:\Documents and Settings\hr1ub098\Application Data\Python\Python27\site-packages\pandas\tools\plotting.pyc in plot_series(series, label, kind, use_index, rot, xticks, yticks, xlim, ylim, ax, style, grid, legend, logy, secondary_y, **kwds) 
    1504      secondary_y=secondary_y, **kwds) 
    1505 
-> 1506  plot_obj.generate() 
    1507  plot_obj.draw() 
    1508 

C:\Documents and Settings\hr1ub098\Application Data\Python\Python27\site-packages\pandas\tools\plotting.pyc in generate(self) 
    731   self._compute_plot_data() 
    732   self._setup_subplots() 
--> 733   self._make_plot() 
    734   self._post_plot_logic() 
    735   self._adorn_subplots() 

C:\Documents and Settings\hr1ub098\Application Data\Python\Python27\site-packages\pandas\tools\plotting.pyc in _make_plot(self) 
    1291    else: 
    1292     rect = bar_f(ax, self.ax_pos + i * 0.75/K, y, 0.75/K, 
-> 1293        start=pos_prior, label=label, **kwds) 
    1294    rects.append(rect) 
    1295    labels.append(label) 

C:\Documents and Settings\hr1ub098\Application Data\Python\Python27\site-packages\pandas\tools\plotting.pyc in f(ax, x, y, w, start, **kwds) 
    1251   if self.kind == 'bar': 
    1252    def f(ax, x, y, w, start=None, **kwds): 
-> 1253     return ax.bar(x, y, w, bottom=start, **kwds) 
    1254   elif self.kind == 'barh': 
    1255    def f(ax, x, y, w, start=None, **kwds): 

C:\Documents and Settings\hr1ub098\Application Data\Python\Python27\site-packages\matplotlib\axes.pyc in bar(self, left, height, width, bottom, **kwargs) 
    4779     label='_nolegend_' 
    4780    ) 
-> 4781    r.update(kwargs) 
    4782    r.get_path()._interpolation_steps = 100 
    4783    #print r.get_label(), label, 'label' in kwargs 

C:\Documents and Settings\hr1ub098\Application Data\Python\Python27\site-packages\matplotlib\artist.pyc in update(self, props) 
    657    func = getattr(self, 'set_'+k, None) 
    658    if func is None or not callable(func): 
--> 659     raise AttributeError('Unknown property %s'%k) 
    660    func(v) 
    661    changed = True 

AttributeError: Unknown property marker 
+0

왜하지 설명서를 믿을 것인가? – duffymo

+0

문서화를 믿지 않는 것은 아닙니다. 내 질문은 그것을하는 방법입니다, kind = 'bar'가하지 않기 때문입니다. – WebOrCode

+0

시계열은 시간적으로 연속적이며 히스토그램은 개별 상자입니다. 어쩌면 저장소를 정의하고 할당 할 값 (평균?)을 파악한 다음 해당 값을 "바"로 표시해야 할 수도 있습니다. – duffymo

답변

2

당신이 할 수있는 시계열의 막대 그래프를 그립니다. 그래도 유용한 IMHO.

ts = Series(randn(20),date_range('20130101',periods=20)) 
ts.plot() 

시계열 라인 플롯은

enter image description here

막대 플롯

enter image description here

+0

예제가 효과적입니다. 내 코드 예제를 업데이트했습니다. 내가 볼 수있는 한 예를 들어 설명해 줄 때만 작동하는 것은 아닙니다. diff(). plot (kind = 'bar', title = 'Verizni indeksi') 나는 diff()에서 사용하기 때문에 bar plot이 필요하다. 막대 그래프를 사용하면 이전 기간의 변화를 더 잘 시각화 할 수 있습니다. – WebOrCode