Как построить график данных для панд в виде графика рассеяния?Я думаю, что я, возможно, испортил индексацию и не могу добавить новый индекс? - PullRequest
0 голосов
/ 08 февраля 2019

Я пытаюсь изобразить свои шаги в виде точечной диаграммы, а затем в конечном итоге добавить линию тренда.Мне удалось заставить его работать с df.plot (), но это линейный график.

Ниже приведен код, который я пробовал:

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

data_file = pd.read_csv('CSV/stepsgyro.csv')

# print(data_file.head())

# put in the correct data types
data_file = data_file.astype({"steps": int})
pd.to_datetime(data_file['date'])

# makes the date definitely the index at the bottom
data_file.set_index(['date'], inplace=True)

# sorts the data frame by the index
data_file.sort_values(by=['date'], inplace=True, ascending=True)
# data_file.columns.values[1] = 'date'

# plot the raw steps data
# data_file.plot()
plt.scatter(data_file.date, data_file.steps)
plt.title('Daily Steps')
plt.grid(alpha=0.3)
plt.show()

plt.close('all')

# plot the cumulative steps data
data_file = data_file.cumsum()
data_file.plot()
plt.title('Cumulative Daily Steps')
plt.grid(alpha=0.3)
plt.show()

plt.close('all')

и вот скриншоткак это выглядит на моей IDE: pic

Любое руководство будет с благодарностью!

Ответы [ 3 ]

0 голосов
/ 08 февраля 2019

Вы можете использовать df.plot(kind='scatter'), чтобы избежать линейного графика.

0 голосов
/ 08 февраля 2019

Вы установили индекс для столбца "дата".С этого момента столбец «дата» больше не существует, следовательно, data_file.date завершается неудачей.

Два варианта:

  1. Не устанавливать индекс.В любом случае сортировка не нужна.
  2. Составьте индекс, plt.scatter(data_file.index, data_file.steps)
0 голосов
/ 08 февраля 2019

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

data_file.plot(marker='.', linestyle='none')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...