如何绘制带有多个子图的多个数据框?

时间:2019-04-08 18:12:10

标签: python-3.x pandas matplotlib python-3.6

我是Pandas的新手,它试图遍历本地驱动器上的8个结构相同的.txt文件的目录,将每个文件放入自己的Pandas DataFrame中,然后将每个文件作为其目录拥有subplot

文件没有标题,看起来像这样(但有更多行):

0.01 100
0.02 150
0.03 225

这是我的Python代码:

import glob
import pandas as pd
from matplotlib import pyplot as plt

path = '/path/to/data/files/2015*' #dir has 8 files beginning with 2015
files = glob.glob(path)

for file in files:
    f = open(file, 'r')

    df = pd.read_csv(f, sep=' ', header=None, )

    fig = plt.figure(figsize=(10,8))
    subs = plt.subplots(8, sharex=True)    
    df.plot(subplots=True)
    plt.show()

奇怪的是,它构成了8个子图的结构,但没有显示绘制在其上的任何数据。不知道为什么。

编辑:我刚刚注意到,当我将一个文件读入DataFrame作为测试时,它会创建一个具有以下结构的df

0 0.01 100 N/A
1 0.02 150 N/A
2 0.03 225 N/A

似乎代码将N/A添加到每一行以及索引作为第一列。

1 个答案:

答案 0 :(得分:0)

您要执行八次操作,而只需执行一次即可:创建图形,创建子图并显示图形。每个循环中唯一需要做的就是选择正确的轴并绘制数据。

尝试一下:

FrontDiv