время на оси X отображается неправильно при наложении диаграмм рассеяния в пандах питона - PullRequest
0 голосов
/ 28 июня 2018

Я пытался построить линию тренда с наложенной на нее точкой выброса. Выбросы либо выше верхней полосы, либо ниже нижней. Проблема в том, что когда я пытаюсь построить некоторые из наложенных выбросов, индекс будет работать неправильно и даст мне искаженное изображение.

Я пытался исправить это в течение нескольких часов и, наконец, заметил, что если я переключу порядок печати, это будет работать. Я не мог понять, что пошло не так, и хотел бы некоторые идеи! Спасибо!

Код, который работает:

ax = sp[sp.counts > sp.upper].counts.plot(marker='D',linestyle='none',label='increase')
sp.plot(ax=ax)
sp[sp.counts < sp.lower].counts.plot(marker='D',linestyle='none',label='decrease')
ax.legend(bbox_to_anchor=(1, 1))

Правильное изображение:

Correct Image

Код, который не:

ax = sp.plot()
sp[sp.counts > sp.upper].counts.plot(marker='D',ax=ax,linestyle='none',label='upper')
sp[sp.counts <= sp.lower].counts.plot(marker='D',linestyle='none',label='lower')
ax.legend(bbox_to_anchor=(1, 1))

Не работает Изображение:

Not working Image

И если я удалю sp[sp.counts <= sp.lower], он снова будет работать. (И у sp[sp.counts > sp.upper] все хорошо!)

Вот другие способы, которыми я пытался исправить код выше и не работал:

  1. использовать matplotlib вместо построения панд
  2. используйте fig, ax = plt.subplots() для определения топора
  3. переключить порядок двух выпадающих участков
  4. используйте только один набор выбросов sp[(sp.counts < sp.lower) | (sp.counts > sp.upper)], это на самом деле работает, но будет иметь только один цвет.

Вот структура данных:

sp.counts [sp.counts> sp.upper]

время

2015-11-01 6369

2015-11-08 6502

2015-11-22 6505

2015-12-06 6589

2015-12-13 6674

2016-09-25 6791

2016-11-20 7051

Имя: count, dtype: int64

sp [sp.counts

время

2015-05-31 5841

2015-12-27 5526

2016-11-27 6117

Имя: count, dtype: int64

sp.tail (5)

         counts      ave     upper     lower

время

2017-08-27 6956 6834.25 7083.758 6584.742

2017-09-03 6794 6828.30 7075.566 6581.034

2017-09-10 6694 6815,85 7063,873 6567,827

2017-09-17 6784 6810,35 7055,943 6564,757

2017-09-24 6889 6805,70 7040,911 6570,489

...