Seaborn热图xticklabels无法与日期配合使用

时间:2019-03-21 11:35:04

标签: python jupyter-notebook seaborn heatmap missing-data

也许这是重复出现的问题。尽管我在网站上查询了旧的问题,但无法完全解决问题。一些旧的论坛主题对我有很大帮助:

Show dates on seaborn heatmap

Seaborn Heatmap with Datetime Axes

Date axis in heatmap seaborn

Date axis in heatmap seaborn

但是经过很多尝试,我仍然无法弄清楚。

我的问题是这样

我有一个这样的数据框(但是原始数据框要广泛得多,它是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)

我得到了下图:

enter image description here

但是您可以看到,xticklabel并不是很好。在阅读Seaborn的文档时,我找不到设置xticks数量的任何参数。

我尝试在xticklabels上只放置几年:

x_dates = df.index.strftime('%Y').sort_values().unique() 

但是它也不起作用:

enter image description here

我谦虚地寻求帮助以解决此问题。如果我不在话题上,我表示歉意。

非常感谢您。

0 个答案:

没有答案