2015-03-19 1 views
2

У меня есть образец dataframe here (это рассол для df). Когда я делаю следующее:Морской трос, не показывающий диапазоны CI

df = pd.read_pickle('test.pickle') 
sns.tsplot(data=df.sort('time', ascending=True), time='time', unit='entity', condition='prior_type', value='perf') 

я получаю следующие выходные (ничего): enter image description here

Когда я изменить его, чтобы использовать unit_traces я могу реально увидеть данные

sns.tsplot(data=df.sort('time', ascending=True), time='time', unit='entity', condition='prior_type', value='perf', err_style='unit_traces') 

enter image description here

Мой вопрос: почему я не вижу CI? В некоторых местах данные немного не пересекаются, но я все же думаю, что он должен иметь возможность создать какую-то группу доверия. Я что-то упустил?

+0

Ваши оси отличаются почти на четыре порядка ... Является ли масштабирование каким-то образом, и вам просто нужно перемасштабировать первый сюжет до 0-400? – AN6U5

+0

@ AN6U5 Я пытался, я намеревался перестроить первый сюжет, в моих данных есть очень большие выбросы, но подавляющее большинство находится в масштабе второго сюжета, поэтому я ожидаю увидеть некоторые доверительные интервалы вокруг – sedavidw

+0

Похоже, что происходит, когда ограничения по оси Y установлены на «Нет», возможно, попробуйте установить «ylim» через «pyplot», например 'plt.ylim ((0, 400))', хотя я не уверен, почему лимиты не устанавливаются в первую очередь. – Marius

ответ

8

Оценщик по умолчанию (numpy.mean) производит NaNs, если отсутствуют данные, которые matplotlib просто избегает построения (часто полезно, но здесь возможно запутывает). Использование нанонадежной оценки, такой как scipy.stats.nanmean, должно работать. Извините, что это не является более очевидным в документации.

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