Дата составления графика с Матплотлибом и Пандами - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь построить число продаж по оси Y относительно дат по оси X.Я не могу найти способ сделать даты на оси X.Если я изменю даты на число с плавающей точкой, я смогу их построить, но я все еще не могу найти способ построить формат даты.

import matplotlib.pyplot as plt
import csv

x = []
y = []

with open('book1.csv','r') as csvfile:
    plots = csv.reader(csvfile, delimiter=',')
    for row in plots:
        x.append(float(row[0]))
        y.append(float(row[1]))

plt.plot(x,y, label='Loaded from file!')
plt.xlabel('x')
plt.ylabel('y')
plt.title('Interesting Graph\nCheck it out')
plt.legend()
plt.show()

Мой CSV выглядит примерно так:

1/1/2019,7980.185714
2/1/2019,9478.297619
3/1/2019,9282.166667
4/1/2019,6900.833333
5/1/2019,5563.716667

Если я изменю даты на формат с плавающей точкой, я получу этот график: enter image description here

1 Ответ

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

Вам необходимо изменить тип x на datetime:

import matplotlib.pyplot as plt
import csv
import datetime as dt

x = []
y = []
with open('book1.csv','r') as csvfile:
  plots = csv.reader(csvfile, delimiter=',')
  for row in plots:
      x.append(dt.datetime.strptime(row[0],'%m/%d/%Y').date())
      y.append(float(row[1]))
plt.plot(x,y, label='Loaded from file!')
plt.xlabel('x')
plt.xticks(x, x, rotation=90)
plt.ylabel('y')
plt.title('Interesting Graph\nCheck it out')
plt.legend()
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...