import numpy as np
import plotly
import plotly.graph_objs as go # 创建各类图表
'''创建仿真数据'''
N = 100
random_x = np.linspace(-1, 1, N)
random_y0 = np.random.randn(N)+5
random_y1 = np.random.randn(N)
random_y2 = np.random.randn(N)-5
'''构造trace0'''
trace0 = go.Scatter(x=random_x, y=random_y0,
mode='markers', name='markers',
marker=dict(size=10, color=np.random.randn(500), line=dict(width=2),
colorscale='Viridis', showscale=True))
'''构造trace1'''
trace1 = go.Scatter(x=random_x, y=random_y1,
mode='lines+markers', name='lines+<b>markers',
marker={'color': 'rgba(255, 182, 193, .9)'})
'''构造trace2'''
trace2 = go.Scatter(x=random_x, y=random_y2,
name='lines', connectgaps=True,
line=dict(color=('rgb(22, 96, 167)'), width=4, dash='dash', shape='spline'))
'''将所有trace保存在列表中'''
data = [trace0, trace1, trace2]
'''创建layout对象'''
layout = go.Layout(title=dict(text='测试', x=0.5, xanchor='center', xref='paper'),
font={'size': 22, 'family': 'sans-serif', 'color': 'black'}, # 将全局字体颜色设置颜色为葱绿
titlefont={'size': 20, 'color': 'blueviolet'}, # 将标题字体颜色设置颜色
xaxis={'title': '这是横坐标轴', 'titlefont': {'size': 30},
'showgrid': True, 'gridcolor': 'tomato'},
yaxis={'title': '这是纵坐标轴', 'titlefont': {'size': 40},
'showgrid': True, 'gridcolor': 'mediumorchid',
'showline': False, 'zeroline': True},
legend={'x': 0.9, 'y': 1}
)
'''将graph部分和layout部分组合成figure对象'''
fig = go.Figure(data=data, layout=layout)
'''启动绘图'''
plotly.offline.plot(fig, filename='scatter-mode.html')
# =============================================================================
# yaxis : 设置此迹线的y坐标和2D笛卡尔y轴之间的参考。xaxis类同;
# zeroline : 确定是否沿该轴的0值绘制直线。如果为“True”,则在网格线的顶部绘制零线;
# marker : 标记
# opacity(0-1)标记透明度
# size(标记大小)
# color(标记颜色)
# line(width:边界线宽度、color:marker.line颜色)
# showscale : 仅当marker.color设置为数值数组时才有效。确定是否显示颜色条;
# colorscale : 设置色阶,在marker.line.color设置为数值数组时才有效;
# 设置格式:1) [1, 'rgb(255,0,0)'];2)色板名称字符串。
# 链接:https://www.jianshu.com/p/203c59d93cdc
#
#
# showlegend(boolean) : 默认值True,只有1条数据时,需要设置为True后才能显示 name;
# mode : 设置图表类型,可以设置:lines、markers、两者相加;
# name : 设置图例项目名称,并在悬停时显示;
# line : 设置折线类型,包括:color、width、shape、smoothing(平滑线)、dash(线条样式)、simplify(简化线条);
# layout : 设置图表布局。title设置图表标题、xaxis和yaxis设置坐标轴标题、width和height设置图表的宽和高;
# 图例命名时,可以通过html标签加粗、添加空格等操作;
# connectgaps:设置数据为空(即{nan}或缺失值)时,图表是否连接,默认为Fasle;
# hoverinfo : 悬停时显示的跟踪信息,任何组合"x", "y", "z", "text", "name" ;
# line. shape : 设置线条形状,enumerated : "linear" | "spline" | "hv" | "vh" | "hvh" | "vhv" ;
# text : 关联的文本元素。单个字符串时,则在所有数据点上显示相同的字符串;字符串数组时,则跟踪(x,y)坐标元素而映射;
# font : 设置悬停标签中使用的字体。family(HTML字体系列)、size、color等;
# layout.legend : 设置图例布局
# bgcolor:设置图例背景颜色
# bordercolor:设置图例边框颜色
# borderwidth:设置图例的边框的宽度
# front:设置图例文本设置
# orientation:设置图例方向
# x : 设置图例的x位置,范围:-2~3,y轴相同
# traceorder:设置图例显示顺序, 包括:"reversed","grouped","reversed+grouped","normal"
#
# 链接:https://www.jianshu.com/p/ea32777736b7
# =============================================================================
plotly官网:http://plotly.com/python/.