2016-07-28 11 views
0

PyPlotを使用して複数のグラフを1つのウィンドウに表示しようとしています。私は次のコードに問題はありません:matplotlib/pyplotでfigureを1つしか作成できない

def create_figure_one(self): 
    plt.figure(1) 
    plt.subplot(311) 
    plt.plot_date(self.dates, self.PREC, '-', color='b') 
    plt.title('Precipitation', fontsize=20) 
    plt.ylabel('MM/DT', fontsize=15) 
    plt.tick_params(axis='both', which='major', labelsize=10) 
    plt.tick_params(axis='both', which='minor', labelsize=10) 
    plt.grid() 

    plt.subplot(312) 
    plt.plot_date(self.dates, self.PET, '-', color='b') 
    plt.plot_date(self.dates, self.AET, '-', color='r') 
    plt.title('Evapotranspiration', fontsize=20) 
    plt.ylabel('MM/DT', fontsize=15) 
    plt.tick_params(axis='both', which='major', labelsize=10) 
    plt.tick_params(axis='both', which='minor', labelsize=10) 
    red_patch = mpatches.Patch(color='blue', label='Potential') 
    blue_patch = mpatches.Patch(color='red', label='Actual') 
    plt.legend(handles=[red_patch, blue_patch]) 
    plt.grid() 

    plt.subplot(313) 
    plt.plot_date(self.dates, self.Q, '-', color='b') 
    plt.title('Flow', fontsize=20) 
    plt.ylabel('CMS', fontsize=15) 
    plt.xlabel('Time', fontsize=15) 
    plt.tick_params(axis='both', which='major', labelsize=10) 
    plt.tick_params(axis='both', which='minor', labelsize=10) 
    plt.grid() 

    plt.show() 

この関数は、GUIのボタンをクリックした後に呼び出されます。同様に、別の関数を呼び出す別のボタンがGUIにあります。

def create_figure_two(self): 
    plt.figure(1) 
    #UZTWC 
    plt.subplot(611) 
    plt.plot_date(self.dates, self.UZTWC, '-', color='b') 
    self.title('UZTWC', fontsize=15) 
    plt.ylabel('MM', fontsize=10) 
    plt.tick_params(axis='both', which='major', labelsize=10) 
    plt.tick_params(axis='both', which='minor', labelsize=10) 
    plt.grid() 

    #UZFWC 
    plt.subplot(612) 
    plt.plot_date(self.dates, self.UZFWC, '-', color='b') 
    self.title('UZFWC', fontsize=15) 
    plt.ylabel('MM', fontsize=10) 
    plt.tick_params(axis='both', which='major', labelsize=10) 
    plt.tick_params(axis='both', which='minor', labelsize=10) 
    plt.grid() 

    #LZTWC 
    plt.subplot(613) 
    plt.plot_date(self.dates, self.LZTWC, '-', color='b') 
    self.title('LZTWC', fontsize=15) 
    plt.ylabel('MM', fontsize=10) 
    plt.tick_params(axis='both', which='major', labelsize=10) 
    plt.tick_params(axis='both', which='minor', labelsize=10) 
    plt.grid() 

    #LZFPC 
    plt.subplot(614) 
    plt.plot_date(self.dates, self.LZFPC, '-', color='b') 
    self.title('LZFPC', fontsize=15) 
    plt.ylabel('MM', fontsize=10) 
    plt.tick_params(axis='both', which='major', labelsize=10) 
    plt.tick_params(axis='both', which='minor', labelsize=10) 
    plt.grid() 

    #LZFSC 
    plt.subplot(615) 
    plt.plot_date(self.dates, self.LZFSC, '-', color='b') 
    self.title('LZFSC', fontsize=15) 
    plt.ylabel('MM', fontsize=10) 
    plt.tick_params(axis='both', which='major', labelsize=10) 
    plt.tick_params(axis='both', which='minor', labelsize=10) 
    plt.grid() 

    #ADIMC 
    plt.subplot(616) 
    plt.plot_date(self.dates, self.ADIMC, '-', color='b') 
    self.title('ADIMC', fontsize=15) 
    plt.ylabel('MM', fontsize=10) 
    plt.tick_params(axis='both', which='major', labelsize=10) 
    plt.tick_params(axis='both', which='minor', labelsize=10) 
    plt.xlabel('Time', fontsize=10) 
    plt.grid() 
    plt.show() 

何も起こりません。私は端末に何のエラーもなく、私のプログラムは終了せず、グラフが表示されたウィンドウは表示されません。私の2つの機能の違いが、なぜ最初のものが機能しているのか、2番目の機能がないのかを説明することができません。

self.dates:

self.list_of_datetimes = [] 
    skipped_header = False; 
    with open(data_file, 'rt') as f: 
     reader = csv.reader(f, delimiter=',', quoting=csv.QUOTE_NONE) 
     for row in reader: 
      if skipped_header: 
       date_string = "%s/%s/%s %s" % (row[0].strip(), row[1].strip(), row[2].strip(), row[3].strip()) 
       dt = datetime.strptime(date_string, "%Y/%m/%d %H") 
       self.list_of_datetimes.append(dt) 
      skipped_header = True 

    self.dates = matplotlib.dates.date2num(self.list_of_datetimes) 

、誰もがそれをいただければ幸いです任意の洞察力を持っている場合。

答えて

1

私はスマートな人間ではありません...私は "plt.title"を持っていなければならない私の2番目の図で "self.title"を持っていました。それはそれを修正した。

関連する問題