首页 > 解决方案 > 使用不同样式的线条呈现数据和缺失数据(Matplotlib,绘图)

问题描述

我有不同系列的数据,有些缺失(NaN)。

我想绘制一个图表,实线连接数据,虚线连接缺失数据。

我想把它放在同一个地块上。

例子

0     0.146397
1          NaN
2     0.356559
3          NaN
4          NaN
5          NaN
6          NaN
7     0.146451
8          NaN
9          NaN
10         NaN
11         NaN
Name: mySeries, dtype: object

我知道我可以做到:

# solid
plt.plot( my_series,  linestyle='-', marker='o')

# dotted, excluding Nan
plt.plot( my_series.dropna(), linestyle=':', marker='o')

我想叠加情节,例如:

plt.plot( my_series,  linestyle='-', marker='o')
plt.plot( my_series.dropna(), linestyle=':', marker='o')
plt.show

但我看到只看到最后一张图(我使用的是 jupyter,不确定是不透明度还是 jupyter 的问题,只显示最后一张计算图)。

如何使用相同的绘图告知用户哪些线反映了真实数据,哪些线连接了缺失的数据?

(使用熊猫、matplotlib、jupyter)。

标签: pythonpandasmatplotlibplotdata-visualization

解决方案


在不同的单元格中尝试每个命令,您会看到第一行看起来像分散的。这是因为您的数据确实分散在各处。所以我稍微修改了一下:

0     0.146
1     0.220
2       NaN
3     0.356
4       NaN
5       NaN
6       NaN
7       NaN
8     0.146
9       NaN
10      NaN
dtype: float64

并切换情节的顺序,因为我们希望原始情节在顶部:

plt.plot( my_series.dropna(), ':o')
plt.plot(my_series, marker='o')
plt.show()

输出:

在此处输入图像描述


推荐阅读