2014-11-09 3 views
0

Недавно я встретил сюжет, который представляет собой очень мощную интерактивную онлайн-сюжетную систему. Поэтому я думал о преобразовании сюжетов, созданных matplot, в замысел. Все работает отлично, за исключением графика временных рядов.конвертировать график временных рядов с использованием matplot to plotly

вот простая версия моего кода.

import pandas as pd 
import matplotlib.pyplot as plt 
import plotly.plotly as py 
import plotly.tools as tls 
tls.set_credentials_file(
     username="edwinwang1988", 
     api_key="o8xw6s61dn") 
import numpy as np 

x = pd.date_range('1/1/2001',periods =72,freq='D') # genrate a date range 
Series = pd.DataFrame(x,columns=['Date']) # generate a date range data frame 

np.random.seed(0) 
col = ['A','B','C','D'] #set col names for return series 
s = pd.DataFrame(np.random.randn(72,4),columns=col) # generate random return series with col names as col 
for i in range(len(col)): 
    s[col[i]] = s[col[i]].cumsum() 

s['Date']=x # add date to dataframe s 
s.plot(x='Date') # plot s and set date as x axis 

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

mpl_fig2= plt.gcf() 
py.iplot_mpl(mpl_fig2,strip_styple = True,filename='test') 

я вижу код ошибки, как «мин() аргумент является пустой последовательностью», а иногда это «год = 1 до 1900, а даты и времени STRFTIME() методы требуют год> = 1900»

ответ

1

Полное раскрытие, я работаю в Plotly.

Т.Л., д-р:

запустить это в терминале, и это должно быть исправлено:

pip install --upgrade plotly

Контекст:

Так, панды могут сделать некоторые забавные вещи к датам в matplotlib. Это как Matplotlib обрабатывает даты, в основном:

1 день 1 года МСВ является плавающей точкой 1,0

http://matplotlib.org/api/dates_api.html#module-matplotlib.dates

В зависимости от того, как вы используете панд для форматирования даты, вы можете закончить с помощью pandas TimeSeries_DateFormatter. Насколько мне известно, отзвук это на самом деле, чтобы изменить основные данные, связанные с временами даты к следующему соглашению:

1-й день 1970 года МСВ является плавающей точкой 0,0

Итак, дни (не секунды!) С эпохи (http://en.wikipedia.org/wiki/Unix_time). Fyi, это возвращается к ~ 9-22-1677, используя отрицательные числа.

Выпуск:

plotly лечили DateTimes внутри Matplotlib как Matplotlib DateTimes, но панда добавляет форматчик, который изменяет это. Патч добавляется в plotly 1.4.2

+0

по-прежнему не работает по какой-либо причине. Я получаю тот же код ошибки. @theengineear – Edwin

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