2015-01-03 6 views
0

plot_date 명령을 사용하여 matplotlib에서 시계열 데이터를 플로팅합니다.plot_date 및 matplotlib 내의 다중 열 하위 플롯. plot_date를 사용하여 1 열 2 열 subplot을 변경하는 방법?

다음 코드에서 dt_str_etc 및 BTOTetc는 datetime 형식의 데이터 배열을 나타냅니다. 다음과 같이 내 코드의 일부는 다음과 같습니다 이제

import matplotlib.pylab as plt 
import matplotlib.dates as dates 
from datetime import datetime 

f,axarr=plt.subplots(nrows=9,sharex=False) 

axarr[0].plot_date(dt_str_16h25,BTOT16h25,fmt='-k') 
axarr[1].plot_date(dt_str_16h26,BTOT16h26,fmt='-k') 
axarr[2].plot_date(dt_str_16h27,BTOT16h27,fmt='-k') 
axarr[3].plot_date(dt_str_16h28,BTOT16h28,fmt='-k') 
axarr[4].plot_date(dt_str_16h29,BTOT16h29,fmt='-k') 
axarr[5].plot_date(dt_str_16h30,BTOT16h30,fmt='-k') 
axarr[6].plot_date(dt_str_16h31,BTOT16h31,fmt='-k') 
axarr[7].plot_date(dt_str_16h32,BTOT16h32,fmt='-k') 
axarr[8].plot_date(dt_str_16h33,BTOT16h33,fmt='-k') 

, 작동 위의 코드. plot_date 함수는 예상대로 기능하고 좋은 서브 루틴과 함께 좋은 음모를 얻을 수 있습니다.

위의 9 개의 그림을 한 줄에 두 개 [ 2 x 5 (비어있는 공간 하나)]]. 여러 컬럼으로 된 서브 플롯. 그래서 다음 코드를 사용하여이 작업을 수행하려고 시도 :

Traceback (most recent call last): 
     File "C:/Users/Charles/Google Drive/Year 4 Real/MPhys Project/Mag  Data/2007/Mag_data_2007_plot_T 25 26 27 28 29 30 31 32 33 adjusted.py", line 118, in <module> 
    axarr[1].plot_date(dt_str_16h25,BTOT16h25,fmt='-k') 
AttributeError: 'numpy.ndarray' object has no attribute 'plot_date' 

내가 행한 모든 "으로 ncols = 2"를 쓸 수 있습니다 :

import matplotlib.pylab as plt 
import matplotlib.dates as dates 
from datetime import datetime 

f,axarr=plt.subplots(nrows=5,ncols=2,sharex=False) 

axarr[0].plot_date(dt_str_16h25,BTOT16h25,fmt='-k') 
axarr[1].plot_date(dt_str_16h26,BTOT16h26,fmt='-k') 
axarr[2].plot_date(dt_str_16h27,BTOT16h27,fmt='-k') 
axarr[3].plot_date(dt_str_16h28,BTOT16h28,fmt='-k') 
axarr[4].plot_date(dt_str_16h29,BTOT16h29,fmt='-k') 
axarr[5].plot_date(dt_str_16h30,BTOT16h30,fmt='-k') 
axarr[6].plot_date(dt_str_16h31,BTOT16h31,fmt='-k') 
axarr[7].plot_date(dt_str_16h32,BTOT16h32,fmt='-k') 
axarr[8].plot_date(dt_str_16h33,BTOT16h33,fmt='-k') 

이 나에게 오류를 반환합니다. 그것은 유일한 차이점입니다. 왜 plot_date 명령을 사용하여 더 이상이 방법으로 플롯 할 수 없습니까?

나는 "add_subplot"을 사용하여 potentiall에 관한 subplot matplotlib 문서에 대한 정보를 읽었습니다. 필요한 경우이 코드를 사용하여 다시 작성할 수 있지만 그대로 유지하는 것이 좋습니다. 어떤 아이디어?

제공되는 도움말이나 의견에 감사드립니다.

답변

1

플롯 레이아웃에 여러 행과 열이있는 경우 반환되는 배열은 2 차원입니다. axarr[0, 0]axarr[0, 1] 등을 사용하여 개별 하위 영점을 액세스해야합니다.

+0

안녕하세요 BrenBarn. 도움을 많이 주셔서 감사합니다, 바보 같은 약간을 느낍니다. 나는 아직도 이것에 upvote에 충분한 명성이 없지만, 희망을 갖고, 할 수있을 때까지, 나의 감사는 충분할 것이다! 정말 고맙습니다! – Chuck

+0

또한 1D 목록으로 축을 돌려 줄 'subplots' (내 머리 꼭대기의'평평하게 'iirc)에 kwarg가 있습니다. – tacaswell