【问题标题】:Plotting two datasets from different folders on one plot在一个绘图上绘制来自不同文件夹的两个数据集
【发布时间】:2016-12-08 19:39:13
【问题描述】:

我有两个文件数量相似的文件夹: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()

问题是我要么将所有日期集绘制在一个图上,要么为每个文件绘制一个图(我需要在一个图上绘制两个数据集)。我假设我可以将输出附加到一个空的数据帧然后绘制它,但是有没有一种最简单的方法可以通过循环绘制它们?

附:我知道有类似的问题,但不完全是。

【问题讨论】:

  • pandas 使用matplotlib,当您使用subplots() 创建许多绘图时,它会返回figax,然后您可以使用ax 选择绘图以绘制线 - @ 987654331@,ax[1].plot()。 IE。 stackoverflow.com/a/40761336/1832058
  • 我在您的代码中看不到相似文件对。一个一个看怎么知道两个文件是否相似?

标签: python loops matplotlib plot


【解决方案1】:

pandas 使用matplotlib,当您创建许多绘图时,它会给出figax。 IE。一列 5 个图

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

然后您可以使用ax[0]a[1] 选择绘制线的绘图。

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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-12
    • 2019-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多