python - 如何在 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
解决方案
实际上,该图显示了数据集中的每个日期。它们太多了,看起来就像一个黑色的斑点。您可以对 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)
。
希望这可以帮助。
推荐阅读
- javascript - 通过ajax调用更新选择字段时未选择Select2
- pandas - pandas groupby 几个标准
- c - 在 Windows 10 上出现运行时错误,找不到 libintl_swprintf
- vaadin - Apexchart js如何用java更改弧度条形图中的标签
- bash - 终端无应答
- swift - 如何在 Swift 中搜索多页文档中的句子?
- javascript - 简化多个相似的 If 语句 (JAVASCRIPT)
- python - 在 python 中使用身份识别代理 (IAP) 对 GCP 服务帐户进行身份验证
- python-3.x - 提升语句:为什么我的代码块返回一个空列表而不是执行我的“提升”语句?
- google-bigquery - 使用 HAVING COUNT(*) = 1 BiqQuery 时如何包含行