2016-01-06 4 views
2

Я столкнулся с проблемой при построении серии панд. При построении серии с даты и времени оси х, х-оси соответственно переименованы при масштабировании, то есть он работает отлично:pandas plot x-axis label

from matplotlib import pyplot as plt 
from numpy.random import randn 
from pandas import Series,date_range 
import numpy as np, pandas as pd 
date_index = date_range('1/1/2016', periods=6*24*7, freq='10Min') 
ts = Series(randn(len(date_index)), index=date_index) 
ts.plot(); plt.show() 

Однако, когда я переопределять индекс серии как строки, странная вещь происходит, увеличение не работает должным образом больше (пределы, похоже, не изменится)

sindex=np.vectorize(lambda s: s.strftime('%d.%m %H:%M'))(ts.index.to_pydatetime()) 
ts = Series(randn(len(date_index)), index=sindex) 
ts.plot(); plt.show() 

Является ли это ошибка или я неправильно/неправильно? советы/помощь будут очень приветствуются.

Я также заметил, что заговор с Kind = «бар» сравнительно по умолчанию невероятно медленно (с более длинными векторами), и я не уверен, что было бы происхождение этого ...

ответ

0

При форматировании отметки даты как строки перед построением графика, вы теряете всю актуальную информацию о дате; теперь они просто струны. Это означает, что pandas/matplotlib не могут переформатировать метки меток при масштабировании. См. Первый абзац после графика here.

Для вас второй вопрос, штриховой график будет рисовать тик и бар для каждой точки данных. Для больших серий это дорого. В это время панели pandas bar не подключены к автоформатированию, как, например, сюжет. Вы можете сделать штрих-заговор непосредственно с matplotlib, хотя, и подавить некоторые из тиков самостоятельно.

+0

Спасибо за ваш ответ. Тогда это ошибка, когда метки ярлыков не скорректированы. Надеюсь, это изменится когда-нибудь. – mats1