使用单个x轴 - Python绘制来自一个数据帧的多个图形

时间:2018-05-31 14:15:41

标签: python python-3.x dataframe plot graph

我已经搜索了所有可能的解决方案,但似乎从来没有以对我来说清晰易懂的方式创建情节。它也适用于潜在的100个数据帧列,因此处于循环或类似性质的解决方案将是首选

我的数据框大致是这个

数据=

Time    Pressure    Static Temperature    Stag Temperature
0       100         50                    75
10      105         55                    77
20      110         59                    81
30      106         57                    79       

我想要的是3个不同的图表,它们绘制压力,静态温度和Stag温度与时间的关系,这将是X轴。

我当前的代码看起来像

import pandas
data=pandas.read_csv(data.csv') 
for header in data:
    data.plot(x='System Time',y=header)

我想我理解的问题是,对于我的data.plot需要有y ="引号中的东西"但我认为因为标题是一个字符串它应该工作。

获得多个图表的任何解决方案都绝对精彩!

另外,如果我的格式被搞砸了,我很抱歉,因为这是我第一次发帖!

2 个答案:

答案 0 :(得分:0)

我认为你正在寻找这个:

>>> data.plot(x="Time")

The output plot

但是,要实现这一点,我必须重新格式化您的data.csv文件以用逗号替换空格,因为它是 C omma S中的默认分隔符 eparated V alues文件。也许您的原始文件已制成表格,在这种情况下,您需要为sep='\t'来电指定read_csv()

答案 1 :(得分:0)

如果有人在将来发现这一点,我想出了自己的问题!

问题是每次都抛出一个错误而且它说的都是

KeyError: 'Time'

这个问题的出现是因为'时间'是我的x轴,然后它通过"数据"的迭代成为我的y轴。因此,在第一个循环中每次都会停止。

要解决这个问题,我所要做的就是添加一个跳过我的x轴的列的语句

import pandas
data=pandas.read_csv(r'data.csv') 
for header in data:
    if header!="Time":
        data.plot(x='Time',y=header,legend=False)

这跳过了第一列,并允许其余的标题在不同的图中绘制。

如果标题让您感到困惑(首先让我感到困惑),您可以使用更通用的表格

import pandas
data=pandas.read_csv(r'data.csv')
for i in list(data):
    if i!="Time":
        data.plot(x='Time',y=i,legend=False)
祝大家好运!