也许这是重复出现的问题。尽管我在网站上查询了旧的问题,但无法完全解决问题。一些旧的论坛主题对我有很大帮助:
Seaborn Heatmap with Datetime Axes
但是经过很多尝试,我仍然无法弄清楚。
我的问题是这样
我有一个这样的数据框(但是原始数据框要广泛得多,它是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)
我得到了下图:
但是您可以看到,xticklabel并不是很好。在阅读Seaborn的文档时,我找不到设置xticks数量的任何参数。
我尝试在xticklabels上只放置几年:
x_dates = df.index.strftime('%Y').sort_values().unique()
但是它也不起作用:
我谦虚地寻求帮助以解决此问题。如果我不在话题上,我表示歉意。
非常感谢您。