График времени, который слишком близко друг к другу - PullRequest
1 голос
/ 12 октября 2019

На моем графике слишком близко скомпонованы даты.

У меня есть следующий код:

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as md
import matplotlib.dates as mdates


data = {"Date":['2019-2-25 14:24:04', '2019-2-25 14:29:02', '2019-2-20 17:02:14',
                '2019-3-25 08:12:54', '2019-3-25 12:32:32'],
        "Quiz":[1,2,2,3,4],
        "Score":[10,3,7,4,9]}

df = pd.DataFrame.from_dict(data)

df.Date = pd.to_datetime(df.Date)   

fig = plt.figure(figsize = (11,9))
ax = fig.add_subplot(111)

ax.set_xticks(df.Date)
ax.xaxis.set_major_formatter(mdates.DateFormatter('%d/%m/%Y %H:%M'))
ax.set_xlabel("Date")
ax.set_ylabel("Score")

ax.plot_date(df.Date, df.Score)

fig.autofmt_xdate(rotation=45)
plt.show()

А вот график:

enter image description here

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

1 Ответ

2 голосов
/ 12 октября 2019

Попробуйте:

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as md
import matplotlib.dates as mdates
import datetime as dt

data = {"Date":['2019-2-25 14:24:04', '2019-2-25 14:29:02', '2019-2-20 17:02:14',
                '2019-3-25 08:12:54', '2019-3-25 12:32:32'],
        "Quiz":[1,2,2,3,4],
        "Score":[10,3,7,4,9]}

df = pd.DataFrame.from_dict(data)

xs = df.Date.values

fig, ax = plt.subplots(1)

ax.set_xlabel("Date")
ax.set_ylabel("Score")

ax.plot_date(xs, df.Score)

fig.autofmt_xdate(rotation=45)
plt.show()

Основным отличием является удаление бизнес-форматирования и установка xs = df.Date.values, а затем разрешение диаграмме самостоятельно позаботиться о форматировании с помощью fig.autofmt_xdate(rotation=45).

enter image description here

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