2016-12-08 44 views
-1

我有兩個文件夾的文件數相似:maindirNomaindirWith。我試圖繪製每一對相似的文件從文件夾中的一個情節:在一張圖上繪製來自不同文件夾的兩個數據集

for i in [maindirNo, maindirWith]: 
for root, dirs, files in os.walk(i): 
    for fil in files: 
     if 'output.rsv' in fil: 
      df = pd.read_csv(os.path.join(i, fil), skiprows = 9, delimiter = r'\s+', header = None) 
      df['SIMULATEDm'] = mergedlevels 
      df['OBSERVEDm'] = df_observed['OBSERVEDm'] 
      df['date'] = pd.date_range('1/1991','12/2040', freq='MS') 
      if i == maindirNo: 
       plt.plot(df['date'], df['SIMULATEDm'], 'b', label='No outlet') 
      if i == maindirWith: 
       plt.plot(df['date'], df['SIMULATEDm'], 'r', label='With outlet') 
      plt.legend(loc = 'lower right') 
      plt.savefig('C:/Users/sgulbin/Desktop/AGU_Conf/plots/%s.jpg' %fil) 
      plt.close() 

的問題是,我要麼都datesets繪製在一張圖,或爲每個文件一個圖(我需要兩個數據集上一個情節)。我假設我可以將輸出附加到一個空的數據框然後繪製它,但有沒有最簡單的方法來通過循環來繪製它們?

P.S.我知道對此有類似的問題,但不完全一樣。

+0

'pandas'使用'matplotlib'當你使用'次要情節()'創建許多情節,然後你可以使用它返回'fig'和''ax'到ax'選擇情節繪製線 - 'ax [0] .plot()','ax [1] .plot()'。即。 http://stackoverflow.com/a/40761336/1832058 – furas

+0

我看不到代碼中的類似文件對。你如何知道兩個文件是否相似?如果你只是一個一個地看它們, – Goyo

回答

0

pandas使用matplotlib當您創建許多圖時給出figax。即。 5個地塊在一列

fig, ax = plt.subplots(5, 1) 

,然後你可以使用ax[0]a[1]選擇適合drawed線圖。

import matplotlib.pyplot as plt 
import pandas as pd 
import random 

SIZE = 5 

# create grid 5x1 
fig, ax = plt.subplots(SIZE, 1) 

# --- first folder --- blue --- 

for idx in range(SIZE): 

    # dataframe with random data as example 
    df = pd.DataFrame([ random.randint(0,10) for _ in range(10) ]) 

    # draw it 
    ax[idx].plot(df, 'b') 

# --- second folder --- red --- 

for idx in range(SIZE): 

    # dataframe with random data as example 
    df = pd.DataFrame([ random.randint(0,10) for _ in range(10) ]) 

    # draw it 
    ax[idx].plot(df, 'r') 

plt.show() 

enter image description here

相關問題