Панды строят два графика в одном масштабе ⇐ Python

Программы на Python
Anonymous
Панды строят два графика в одном масштабе

Сообщение Anonymous »

У меня есть линейный график, конец которого я выделяю маркером (здесь он показан в виде большого красного ромба).

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

Изображение


иногда я получаю:

[img]https: //i.sstatic.net/2bGph.jpg[/img]


и в большинстве случаев при работе с большими наборами данных я получаю следующее предупреждение:

/Users/xxxxx/.virtualenvs/test2/lib/python2.7/site-packages/matplotlib/axes.py:2542: Предупреждение пользователя: попытка установить идентичное значение left==right приводит
к сингулярным преобразованиям; автоматически расширяется.
left=15727, right=15727
+ 'left=%s, right=%s') % (left, right))

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

Можно попробовать приведенный ниже код для создания графиков, можно поиграться путем передачи. Серии или кадры данных для построения графика также могут изменить порядок построения красного ромба. Также можно изменить количество точек данных. Одна ошибка, которую мне не удалось воспроизвести здесь, связана с красным ромбом посередине и синей линией, идущей только влево.

Код:

Код: Выделить всё

plot_with_series = False
reverse_order = False
import pandas as pd
dates = pd.date_range('20101115', periods=800)
df =  pd.DataFrame(randn(len(dates)), index = dates, columns = ['A'])
ds = pd.Series(randn(len(dates)), index = dates)
clf()
if plot_with_series:
if reverse_order: ds.plot()
ds.tail(1).plot(style='rD', markersize=20)
if not reverse_order: ds.plot()
else:
if reverse_order: df.plot(legend=False)
df.A.tail(1).plot(style='rD', markersize=20,legend=False)
if not reverse_order: df.plot(legend=False)
Ошибки/предупреждения возникают как внутри IPython, так и при запуске сценария as из командной строки. Также постоянно в двух последних версиях панд. Есть идеи или очевидные проблемы?

Подробнее здесь: https://stackoverflow.com/questions/170 ... -one-scale

Вернуться в «Python»