2015-07-15 4 views
0

При создании тепловой карты через морской берег seaborn==0.7.0.dev0 моя ось начинается через два часа. DataFrame используется для создания Heatmap начинается:seaborn.heatmap пропускает данные

2015-05-19 21:10:00

Первое get_xticklabels из тепловой карты, созданной с помощью Сиборна однако 2015-05-19 23:10:00.

Тепловая карта создается с помощью

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

Что я здесь отсутствует? Этот пример (с использованием морского дна 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() 

Это приведет к следующему выходу

[email protected]:/tmp$ python test.py 
2000-01-01 00:00:00 
Text(0.5,0,u'2000-01-01T01:00:00.000000000+0100') 
+1

Можете ли вы отправить исходные входные данные и код, чтобы воспроизвести это, спасибо – EdChum

+0

Да, работая над ним. – pho

+0

Какую версию Seaborn вы используете? Попробуйте обновить до последней версии 0.6.0. –

ответ

1

Хорошо получается, что недостающее TZ = значение при создании индекса, который дает смещение INB пример кода.

Мое решение (как изменение tz в моем DataFrame не изменило этого поведения) было установить xticklabel=False в heatmap() и использовать plt.xticks() напрямую.

Смежные вопросы