Pandas не удается скрыть записи NaN из составных линейных графиковPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Pandas не удается скрыть записи NaN из составных линейных графиков

Сообщение Anonymous »

Предположим, у меня есть следующие данные:

Код: Выделить всё

Date,release,count
2019-03-01,buster,0
2019-03-01,jessie,1
2019-03-01,stretch,74
2019-08-15,buster,25
2019-08-15,jessie,1
2019-08-15,stretch,49
2019-10-07,buster,35
2019-10-07,jessie,1
2019-10-07,stretch,43
2019-10-08,buster,40
2019-10-08,jessie,1
2019-10-08,stretch,38
2019-10-09,buster,46
2019-10-09,jessie,1
2019-10-09,stretch,33
2019-10-23,buster,46
2019-10-23,jessie,1
2019-10-23,stretch,31
2019-11-25,buster,46
2019-11-25,jessie,1
2019-11-25,stretch,29
2020-01-13,buster,48
2020-01-13,jessie,1
2020-01-13,stretch,28
2020-01-29,buster,50
2020-01-29,jessie,1
2020-01-29,stretch,26
2020-03-10,buster,54
2020-03-10,jessie,1
2020-03-10,stretch,22
2020-04-14,buster,55
2020-04-14,jessie,0
2020-04-14,stretch,21
2020-05-11,buster,57
2020-05-11,jessie,0
2020-05-11,stretch,17
2020-05-25,buster,61
2020-05-25,jessie,0
2020-05-25,stretch,14
2020-06-10,buster,62
2020-06-10,stretch,12
2020-07-01,buster,69
2020-07-01,stretch,3
2020-10-30,buster,74
2020-10-30,stretch,2
2020-11-18,buster,76
2020-11-18,stretch,2
2021-08-26,bullseye,1
2021-08-26,buster,86
2021-08-26,stretch,1
2021-10-08,bullseye,4
2021-10-08,buster,86
2021-10-08,stretch,1
2021-11-11,bullseye,4
2021-11-11,buster,84
2021-11-11,stretch,1
2021-11-17,bullseye,4
2021-11-17,buster,85
2021-11-17,stretch,0
И следующий код:

Код: Выделить всё

import pandas as pd
import matplotlib.pyplot as plt

# Load the data
df = pd.read_csv('subset.csv')

# Pivot the data to a suitable format for plotting
df = df.pivot_table(index="Date", columns='release', values='count', aggfunc='sum')

# Convert the index to datetime and sort it
df.index = pd.to_datetime(df.index)

print(df)

# Plotting the data with filled areas
fig, ax = plt.subplots(figsize=(12, 6))
df.plot(ax=ax, kind="area", stacked=True)

plt.show()
Он генерирует следующий график:
[img]https://i.sstatic.net /z1ldPR25.png[/img]

На графике выше линия Джесси должна была остановиться после 25 мая 2020 г., в середине графика. . Но он продолжает идти, маленькая линия-зайка-энерджайзер, вплоть до правой части графика, хотя на самом деле это NaN. В выводе print(df) мы видим, что это базовый фрейм данных после поворота:

Код: Выделить всё

release     bullseye  buster  jessie  stretch
Date
2019-03-01       NaN     0.0     1.0     74.0
2019-08-15       NaN    25.0     1.0     49.0
2019-10-07       NaN    35.0     1.0     43.0
2019-10-08       NaN    40.0     1.0     38.0
2019-10-09       NaN    46.0     1.0     33.0
2019-10-23       NaN    46.0     1.0     31.0
2019-11-25       NaN    46.0     1.0     29.0
2020-01-13       NaN    48.0     1.0     28.0
2020-01-29       NaN    50.0     1.0     26.0
2020-03-10       NaN    54.0     1.0     22.0
2020-04-14       NaN    55.0     0.0     21.0
2020-05-11       NaN    57.0     0.0     17.0
2020-05-25       NaN    61.0     0.0     14.0
2020-06-10       NaN    62.0     NaN     12.0
2020-07-01       NaN    69.0     NaN      3.0
2020-10-30       NaN    74.0     NaN      2.0
2020-11-18       NaN    76.0     NaN      2.0
2021-08-26       1.0    86.0     NaN      1.0
2021-10-08       4.0    86.0     NaN      1.0
2021-11-11       4.0    84.0     NaN      1.0
2021-11-17       4.0    85.0     NaN      0.0
Интересно, что если вы присмотритесь, вы также увидите, что линия «яблочко» (синяя) действительно присутствует с начала графика.
Итак, что происходит? Matplotlib или pandas или что-то отображают NaN как «ноль» вместо «нет на этом графике?»
И dropna не является ответом здесь: он удаляет целые строки или столбцы, мне нужно будет удалить cell, что здесь не имеет смысла.
Обратите внимание, что моя предыдущая итерация этого графика с использованием столбцов , такой проблемы нет:
Изображение

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

Подробнее здесь: https://stackoverflow.com/questions/791 ... ine-graphs
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»