首页 > 解决方案 > 如何在 matplotlib 图中正确显示来自 csv 的日期?

问题描述

我有一个包含以下列的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

标签: pythonpandascsvmatplotlibplot

解决方案


实际上,该图显示了数据集中的每个日期。它们太多了,看起来就像一个黑色的斑点。您可以对 xticks 进行下采样以增加可读性。做这样的事情:

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])中,您正在使用list. 它将减少打印日期的数量。您可以根据需要增加数量。为了增加可读性,您可以按照我在行中的建议旋转刻度标签 ax.get_xticklabels(ax.get_xticks(), rotation=45)

希望这可以帮助。


推荐阅读