Plotly高级图形的绘制

Plotly高级图形绘制

时间序列

时间序列基本案例

import plotly as py
import plotly.graph_objs as go

from datetime import datetime

# ----------pre def
pyplt = py.offline.plot

# ----------code
x_datetime = [datetime(year=2013, month=10, day=4),
              datetime(year=2013, month=11, day=5),
              datetime(year=2013, month=12, day=6)]
x_string = ['2013-10-04', '2013-11-05', '2013-12-06']

trace_datetime = go.Scatter(x=x_datetime, y=[1, 3, 6],name='trace_datetime')
trace_string = go.Scatter(x=x_string, y=[2, 4, 7],name='trace_string')
data = [trace_datetime, trace_string]
pyplt(data, filename='时间序列基本案例.html')

结果:
在这里插入图片描述

时间序列(具有时间约束范围)

import plotly as py
import plotly.graph_objs as go
from datetime import datetime
pyplt=py.offline.plot
# ----------code
def to_unix_time(dt):
    '''
    :param dt:datetime类型的时间戳
    :return: dt相对于utc起始时间差别的毫秒数
    '''
    epoch =  datetime.utcfromtimestamp(0) # 获取0时刻对应的utc(世界标准时间)
    return (dt - epoch).total_seconds() * 1000 # 计算传入的时间相对于utc的起始时间差别多少毫秒

x = [datetime(year=2013, month=10, day=4),
    datetime(year=2013, month=11, day=5),
    datetime(year=2013, month=12, day=6)]

data = [go.Scatter(
            x=x,
            y=[1, 3, 6])]

layout = go.Layout(xaxis = dict(
                   range = [to_unix_time(datetime(2013, 10, 17)),
                            to_unix_time(datetime(2013, 11, 20))]
    ))
#上面利用range就指定了范围
fig = go.Figure(data = data, layout = layout)
pyplt(fig, filename='时间序列(时间范围约束).html')

结果:
在这里插入图片描述

存在滑动选择控件的时间序列图

对于金融时间序列的绘图,Plotly提供了强大的可定义模板。
import plotly as py
import plotly.graph_objs as go
import pandas as pd

# ----------pre def
pyplt = py.offline.plot

# ----------code
df = pd.read_csv(r'C:/Users/daasda/Desktop/py语言/《基于plotly的动态可视化绘图》数据/Chapter03/excle_data/day01.csv',index_col=[0])

trace=go.Scatter(x=df.index,
                   y=df.close)

data =[trace]
layout = dict(
    title='时间序列的滑块与选择器',
    xaxis=dict(
        rangeselector=dict(
            buttons=list([
                dict(count=1,
                     label='1m',
                     step='month',
                     stepmode='backward'),
                dict(count=6,
                     label='6m',
                     step='month',
                     stepmode='backward'),
                dict(count=1,
                    label='YTD',#今天以来
                    step='year',
                    stepmode='todate'),
                dict(count=1,
                    label='1y',
                    step='year',
                    stepmode='backward'),
                dict(step='all')
            ])
        ),
        rangeslider=dict(),
        type='date'
    )
)
fig = dict(data=data, layout=layout)
pyplt(fig,filename='存在滑动选择控件的时间序列图.html')

结果:
在这里插入图片描述

制作表格

入门案例

import plotly as py
import plotly.figure_factory as FF
# ----------pre def
pyplt = py.offline.plot

data_matrix=[['国家','年份','人口'],
             ['中国','2000','1243438'],
             ['美国','2000','344534'],
             ['加拿大','2000','453542'],
             ['中国', '2005', 
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值