seaborn.heatmap跳过数据

时间:2015-07-15 12:49:22

标签: python pandas heatmap seaborn

通过seaborn seaborn==0.7.0.dev0创建热图时 我的轴在两小时后开始。 用于创建热图的DataFrame从以下位置开始:

2015-05-19 21:10:00

通过seaborn创建的热图的第一个get_xtick标签是2015-05-19 23:10:00

热图是通过

创建的

sns.heatmap(df_test.T, xticklabels=True, yticklabels=True, ax=ax)

我在这里缺少什么? 这个例子(使用seaborn 0.7和0.6)将在一小时后开始,在我的实际数据中甚至是2小时。

import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

index = pd.date_range('1/1/2000', periods=60*60*12, freq='s')


df = pd.DataFrame({'a': pd.Series(np.random.randn(len(index)), index=index),
                   'b': pd.Series(np.random.randn(len(index)), index=index)})

#create boolean vars
df.a = df.a > 0
df.b = df.b > 0

df = df.resample('1Min', how=np.mean)

ax = plt.gca()
fig = plt.gcf()


sns.heatmap(df.T, ax=ax)

#print index
print df.index[0]

#print first xlabel
print ax.get_xticklabels()[0]

[label.set_visible(False) for label in ax.xaxis.get_ticklabels()[1:]]
plt.gcf().autofmt_xdate()
plt.show()

这将产生以下输出

user@debian:/tmp$ python test.py 
2000-01-01 00:00:00
Text(0.5,0,u'2000-01-01T01:00:00.000000000+0100')

1 个答案:

答案 0 :(得分:1)

好的结果是在创建索引时缺少tz =值,该索引给出了示例代码的偏移量。

我的解决方案(在我的DataFrame中更改tz并未更改此行为)是在xticklabel=False中设置heatmap()并直接使用plt.xticks()