目录
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', '1243438'],
['美国', '2005', '344534'],
['加拿大', '2005', '453542'],
['中国', '2010',