python - Seaborn 热图 xticklabels 不适用于日期
问题描述
也许这是一个反复出现的问题。尽管我在网站上查询了旧问题,但我无法完全解决我的问题。一些旧论坛主题对我帮助很大:
但经过多次尝试,我仍然无法弄清楚。
我的问题是这样的:
我有一个这样的数据框(但原始数据框要广泛得多,是从 2004 年到 2018 年的日期索引,间隔为一小时)。
Estreito Furnas Manso Itumbiara Curuai
2004-01-19 15:00:00 NaN NaN 3.73 NaN NaN
2004-01-19 16:00:00 NaN NaN 5.10 NaN NaN
2004-01-19 17:00:00 NaN NaN 5.10 NaN NaN
2004-01-19 18:00:00 NaN NaN NaN NaN NaN
2004-01-19 19:00:00 NaN NaN 4.31 NaN NaN
2004-01-19 20:00:00 NaN NaN 4.90 NaN NaN
2004-01-19 21:00:00 NaN NaN 5.88 NaN NaN
2004-01-19 22:00:00 NaN NaN 7.06 NaN NaN
2004-01-19 23:00:00 NaN NaN 4.71 NaN NaN
2004-01-20 00:00:00 NaN NaN NaN NaN NaN
2004-01-20 01:00:00 NaN NaN 7.25 NaN NaN
2004-01-20 02:00:00 NaN NaN 5.10 NaN NaN
2004-01-20 03:00:00 NaN NaN 2.55 NaN NaN
2004-01-20 04:00:00 NaN NaN 0.39 NaN NaN
2004-01-20 05:00:00 NaN NaN 0.20 NaN NaN
我想在图表中显示丢失的数据,所以我使用的是 seaborn 模块的热图。
按照文档和旧论坛主题,我得到以下脚本。
import matplotlib.pyplot as plt
import seaborn as sns
df_transposed = df.transpose()
plt.subplots(1,1,figsize=(12,6))
ax = sns.heatmap(df_transposed.isnull(), cbar=False)
x_dates = df.index.strftime('%Y-%m').sort_values().unique()
ax.set_xticklabels(labels=x_dates, rotation=45)
我得到了下图:
但正如您所见,xticklabels 不是很好。在阅读 Seaborn 的文档时,我找不到任何参数来设置 xticks 的数量。
我尝试只在 xticklabels 上这样做:
x_dates = df.index.strftime('%Y').sort_values().unique()
但它也不起作用:
我谦虚地寻求帮助来解决这个问题。如果我跑题了,我很抱歉。
非常感谢您提前。
解决方案
推荐阅读
- rest-assured - 如何使用 json-path 库检查密钥是否存在?
- javascript - 使用源对象更新目标对象
- google-cloud-firestore - 'Chrono' 文件未找到 time.h 在 Swift 5 / IOS 10 中使用 cocoapod 导入 firestore
- c# - 是否可以在 C# 中将类对象设置为字符串值
- google-cloud-platform - 如何使用nodejs删除BigTable GCP中的单元格
- mysql - 我的 SQL 工作台无法将自动生成的 id 插入表中
- reactjs - ReactJS 将来自 mongodbstitch 的数据呈现到表中
- reactjs - 如何使用 Azure AD 解决 Access-Control-Allow-Origin 错误
- python - 如何抓取相同的类名数据
- javafx - 将 TextField 限制为 JavaFX 的特定数字范围?