相关疑难解决方法(0)

matplotlib:在忽略缺失数据的点之间绘制线条

我有一组数据,我想绘制为线图.对于每个系列,缺少一些数据(但每个系列都不同).目前,matplotlib不会绘制跳过缺失数据的行:例如

import matplotlib.pyplot as plt

xs = range(8)
series1 = [1, 3, 3, None, None, 5, 8, 9]
series2 = [2, None, 5, None, 4, None, 3, 2]

plt.plot(xs, series1, linestyle='-', marker='o')
plt.plot(xs, series2, linestyle='-', marker='o')

plt.show()
Run Code Online (Sandbox Code Playgroud)

导致线条中有间隙的图.如何告诉matplotlib在间隙中绘制线条?(我宁愿不必插入数据).

python matplotlib

53
推荐指数
3
解决办法
6万
查看次数

从没有fillna或Interpolate的数据框中删除NaN值

我有一个数据集:

           367235   419895  992194
1999-01-11  8   5   1
1999-03-23  NaN 4   NaN
1999-04-30  NaN NaN 1
1999-06-02  NaN 9   NaN
1999-08-08  2   NaN NaN
1999-08-12  NaN 3   NaN
1999-08-17  NaN NaN 10
1999-10-22  NaN 3   NaN
1999-12-04  NaN NaN 4
2000-03-04  2   NaN NaN
2000-09-29  9   NaN NaN
2000-09-30  9   NaN NaN
Run Code Online (Sandbox Code Playgroud)

当我绘制它时,使用plt.plot(df, '-o')我得到这个:

绘制数据帧的输出

但我想要的是将每列的数据点连接成一行,如下所示:

绘制数据帧所需的输出

我知道matplotlib不会连接由NaN值分开的数据点.我看了所有的选项,这里用于处理丢失的数据,但所有的人都将从根本上歪曲在数据帧中的数据.这是因为数据帧中的每个值都代表一个事件; 如果我尝试用标量值替换NaN或使用插值选项,我会得到一堆实际上不在我的数据集中的点.这是插值的样子:

df_wanted2 = df.apply(pd.Series.interpolate)

在此输入图像描述

如果我尝试使用,dropna我将丢失数据帧中的整行\列,这些行包含有价值的数据.

有谁知道连接我的点的方法?我怀疑我需要从数据框中提取单个数组并绘制它们,就像这里给出的建议一样,但这似乎很多工作(我的实际数据框要大得多.)有没有人有解决方案?

python plot matplotlib pandas

7
推荐指数
1
解决办法
1052
查看次数

标签 统计

matplotlib ×2

python ×2

pandas ×1

plot ×1