Простой график не представляет данные - PullRequest
0 голосов
/ 25 сентября 2018

Это очень простой вопрос.У меня есть и ось x лет и ось y чисел, линейно увеличивающаяся на 100. При построении графика с помощью панд и matplotlib мне дают график, который не представляет данные вообще.Мне нужна помощь, чтобы понять это, потому что это такой небольшой код:

CSV выглядит следующим образом:

A,B
2012,100
2013,200
2014,300
2015,400
2016,500
2017,600
2018,700
2012,800
2013,900
2014,1000
2015,1100
2016,1200
2017,1300
2018,1400

Код:

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

data = pd.read_csv("CSV/DSNY.csv")

data.set_index("A", inplace=True)


data.plot()
plt.show()

График, который это дает:

graph from CSV data

Это явно очень несовместимо с данными - какие-либо предложения?

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Поведение по умолчанию для matplotlib / pandas заключается в том, чтобы рисовать линию между последовательными точками данных, а не отмечать каждую точку данных символом.

Исправление: изменить data.plot() наdata.plot(style='o') или df.plot(marker='o', linewidth=0).

Результат: result of style='o'

0 голосов
/ 25 сентября 2018

Все, что вам нужно, это сортировка А перед построением графика.

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

data = pd.read_csv("CSV/DSNY.csv").reset_index()
data = data.sort_values('A')
data.set_index("A", inplace=True)


data.plot()
plt.show()

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...