Как правильно отображать дату из csv в сюжете matplotlib? - PullRequest
0 голосов
/ 28 октября 2019

У меня есть csv со следующими столбцами: записано, влажность и температура. Я хочу отобразить записанные значения (дата и время) на оси X и влажность на оси Y. Как я могу правильно отобразить даты (это довольно большой CSV), так как мой текущий график имеет черный вместо правильных чисел даты ... Мой формат даты выглядит следующим образом: 2019-09-12T07: 26: 55, с датойа также время, отображаемое в CSV.

Я отобразил график, используя этот код:

from matplotlib import pyplot as plt
import pandas as pd

data = pd.read_csv('home_data.csv')
plt.plot(data.recorded, data.humidity)
plt.xlabel('date')
plt.ylabel('humidity')
plt.title('Visualizing date and humidity')
plt.show()

Это экран печати графика: https://snipboard.io/d4hfS7.jpg

1 Ответ

0 голосов
/ 28 октября 2019

На самом деле, график отображает каждую дату в вашем наборе данных. Их так много, что они кажутся просто черным шариком. Вы можете уменьшить количество меток, чтобы повысить удобочитаемость. Сделайте что-то вроде этого:

fig, ax = plt.subplots()
ax.plot(data.recorded, data.humidity)
# some axes labelling
# Reduce now the number of the ticks printed in the figure
ax.set_xticks(ax.get_xticks()[::4])
ax.get_xticklabels(ax.get_xticks(), rotation=45)

В строке ax.set_xticks(ax.get_xticks()[::4]) вы устанавливаете отметки по оси X, выбирая 1 дату каждые 4, используя свойство list. Это уменьшит количество напечатанных дат. Вы можете увеличить количество столько, сколько хотите. Чтобы повысить удобочитаемость, вы можете повернуть метки, как я предлагал, в строке ax.get_xticklabels(ax.get_xticks(), rotation=45).

Надеюсь, это поможет.

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