在一个p上绘制来自不同文件夹的两个数据集

2024-09-29 17:16:47 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

另外,我知道也有类似的问题,但不完全是这样。你知道吗


Tags: 文件数据in文件夹绘图dffordate
1条回答
网友
1楼 · 发布于 2024-09-29 17:16:47

pandas使用matplotlib,当您创建许多绘图时,figax。即一栏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()

enter image description here

相关问题 更多 >

    热门问题