Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用matplotlib在相同x轴上绘制数据帧其他列的列值_Python_Python 3.x_Matplotlib - Fatal编程技术网

Python 使用matplotlib在相同x轴上绘制数据帧其他列的列值

Python 使用matplotlib在相同x轴上绘制数据帧其他列的列值,python,python-3.x,matplotlib,Python,Python 3.x,Matplotlib,我有一个600行的数据框,形状如下: rpttime metric value 25/4/2018 15:45 UTIL_CPU 1.5 25/4/2018 15:44 IDLE 74 25/4/2018 15:41 REC_BYTES_S 0 25/4/2018 15:47 ENT_CPU 100 25/4/2018 15:44 ENT_CORE 1 25/4/2018 15:48 TR

我有一个600行的数据框,形状如下:

rpttime         metric          value
25/4/2018 15:45 UTIL_CPU        1.5
25/4/2018 15:44 IDLE            74
25/4/2018 15:41 REC_BYTES_S     0
25/4/2018 15:47 ENT_CPU         100
25/4/2018 15:44 ENT_CORE        1
25/4/2018 15:48 TRANS_BYTES     92
25/4/2018 15:43 PINNED          5425
25/4/2018 15:48 PAGING_PAG      0
25/4/2018 15:48 IOPS_IN         NULL
25/4/2018 15:47 TRANS_BYTES_S   23484
25/4/2018 15:43 PAGE_OUT        0
25/4/2018 15:42 IOPS_OUT        10

我想绘制y轴上“值”列与x轴上“时间”列的折线图,作为“度量”列中每个单独项目的时间序列。“公制”一栏中约有20个单独的项目。“value”列中有一些空值需要省略,即“value”列中每个空值都需要省略的行。“度量”列的每个单独项至少有一个空值。这20个单独项目的所有线条图都将绘制在一个图表中。如何实现这一点?

您可以直接使用df.dropna()删除打印时不需要的
Null

import pandas as pd

# Original data frame
>>>df_origin


如果您希望为每个
度量值绘制单独的线,您首先应该
groupby
度量值:

grpd = df.groupby('metric')
然后,您可以迭代创建的组,根据
rptime
绘制每组值:

for name, data in grpd:
    plt.plot(data.rpttime.values, data.value.values, 'x-', label = name)
plt.legend()
注意:您提供的数据不足以获得令人印象深刻的结果,因为度量中没有多重相等:

PS:使用导入您的数据

df = pd.read_fwf('wherever/file/may/roam', colspecs=[(None, 15), (16, 31), (32, None)])
df.rpttime = pd.to_datetime(df.rpttime)

PPS:
NA
是自动处理的,即:不绘制空值(请参见
IOPS_IN

您是否可以发布一个干净的数据框,其中的行值==NULL,因为由于存在NA和数值,它与发布的数据框不明确?更新了数据框。对于“公制”列的每个单独项目,空值至少出现一次。因此,在绘制序列时是否要忽略
rptime
其中
==NULL?或者用其他值填充它?忽略整行,其中value==Null.rpttime包含字符串,如25/4/2018 15:48,并且dataframe有一个从0开始的索引列,此处未显示。删除Null值是可以的,使用“metric”的单个项绘制列“value”的多个时间序列数据的任何解决方案列。我想您可以从原始数据框查看
度量
列中的每个唯一项,根据
列中的值绘制时间序列。若你们能详细说明绘图部分的问题,这将是有益的
df = pd.read_fwf('wherever/file/may/roam', colspecs=[(None, 15), (16, 31), (32, None)])
df.rpttime = pd.to_datetime(df.rpttime)