【问题标题】:convert time series plot using matplot to plotly使用 matplotlib 将时间序列图转换为 plotly
【发布时间】:2015-01-06 04:07:42
【问题描述】:

我最近遇到了plotly,这是一个非常强大的交互式在线剧情系统。所以我正在考虑将matplot生成的图转换为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

这很好用,并给我想要的情节,日期为 x 轴。但是当我试图将数字转换为 plotly 时。

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

我看到类似“min() arg is an empty sequence”之类的代码错误,有时这个“year=1 在 1900 年之前;datetime strftime() 方法需要 year >= 1900”

【问题讨论】:

    标签: python-2.7 matplotlib plotly


    【解决方案1】:

    完全披露,我为 Plotly 工作。

    tl;博士:

    在你的终端运行它,它应该是固定的:

    pip install --upgrade plotly

    上下文:

    所以,pandas 可以在 matplotlib 中对日期做一些有趣的事情。这就是 matplotlib 处理日期的方式,基本上:

    UTC 中第 1 年的第 1 天是浮点 1.0

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

    根据您使用 pandas 格式化日期的方式,您最终可以使用 pandas TimeSeries_DateFormatter。据我所知,这样做的后果实际上是将与日期时间关联的基础数据更改为以下约定:

    UTC 1970 年的第 1 天是浮点 0.0

    因此,自纪元 (http://en.wikipedia.org/wiki/Unix_time) 以来的天数(不是秒数!)。仅供参考,这可以通过使用负数回到 ~9-22-1677

    问题:

    plotly 将 matplotlib 中的日期时间视为 matplotlib 日期时间,但 pandas 添加了一个格式化程序来改变这一点。 plotly 1.4.2 中添加了一个补丁

    【讨论】:

    • 由于某种原因仍然无法正常工作。我得到相同的错误代码。 @theengineear
    猜你喜欢
    • 1970-01-01
    • 2019-11-12
    • 1970-01-01
    • 2012-10-23
    • 2013-04-14
    • 1970-01-01
    • 2018-11-04
    • 2017-02-13
    • 2021-08-11
    相关资源
    最近更新 更多