Представление данных и отсутствующих данных с различным стилем линий (Matplotlib, сюжет) - PullRequest
0 голосов
/ 28 апреля 2019

У меня есть разные серии данных, некоторые отсутствуют (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).

1 Ответ

1 голос
/ 29 апреля 2019

Попробуйте каждую команду в отдельной ячейке, вы увидите, что первая строка выглядит как разброс. Это потому, что ваши данные действительно разбросаны. Поэтому я немного его изменил:

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()

Выход:

enter image description here

...