文档地址:Dash-Scatter,列举了一些主要用到的属性
- x : x轴方向的数据,如果是横向的散点图,表示x轴的数据名称(可以是string,否则应该是数字类型的);(必要)
- y : y轴方向的数据,如果是纵向的散点图,表示y轴的数据名称(可以是string,否则应该是数字类型的);(必要)
- name : 设置散点图的显示名称,图例说明的名称也会跟着改变;(必要)
- text : 设置每个点显示的内容,用于mode属性,如果mode设置了text,那么就可以在对应的数据点上显示这个text;
- mode : 设置显示模式,可以设置三个“lines”、“markers”、“text”或者三个的组合,比如“lines+markers”,这里的text需要先设置text属性,否则不会出现,“markers”表示散点,可以没有曲线,默认是“lines+markers”;(重要)
- line : 设置线的属性,- color 可以设置线的颜色,- width 设置线的宽度,- shape 设置线的模式(‘linear’线、‘spline’曲线、‘hv’|‘vh’|‘hvh’|‘vhv’这些都是横平竖直的直线没有斜度),- smoothing 曲线光滑程度0-1.3之间,- dash 设置线的折线(‘solid’实线、‘dot’点线、‘dash’虚线、‘longdash’长虚线、‘dashdot’虚线和点结合的线、‘longdashdot’长虚线和点结合的线)(这个属性也比较重要,可以更改显示形式)
- hoverinfo : 设置鼠标在移动到数据点上时,显示的信息,可以是“x”、“y”、“z”、“name”、“text”、“all”,默认是“all”,也可以是组合“x+y”;
- hovertext : 设置鼠标在移动到数据点上时,显示的信息,默认是空字符,要想起作用,需要将hoverinfo设置为“text”,然后可以在这里自定义显示浮动显示的信息;
- visibale :是否显示散点图,默认是True,关闭后,只显示坐标,散点不显示出来;
- showlegend : 是否显示左边的图例说明图标,默认是True,关闭后,不显示左边的图例说明图标;
- legendgroup : 设置左边的图例说明图标组名,默认是空,String类型,可以自定义设置一个组名,在同一个Figure里面,可以将不同的线图归为同一组,然后点击图例说明图标的时候,同一组的数据图同时显示或隐藏;(重要)
- opacity : 设置散点图的透明度,默认是1;
- ids : 设置一个散点图中所有点的id,可用于动画,是一个string的数组;
- customdata : 为每个数据分配额外的数据,可以用在悬停、单击和选择事件等情况;
- fill : 填充线和哪个轴之间的空白区域,默认是‘none’,如果设置为‘tozeroy’,那么从线开始,到x轴这一片围成的区域都填充一个颜色;
- fillcolor : 填充的颜色,同上面那个参数一起使用;
- selected : 设置选择时,线和点的颜色等属性,这个选择说的是通过右上角的选中模式才会起作用;
- unselected : 设置未选择时,线和点的颜色等属性,也是通过右上角选中模式才起作用;
- textposition : 设置text的显示位置;("top left"
| "top center"
| "top right"
| "middle left"
| "middle center"
| "middle right"
| "bottom left"
| "bottom center"
| "bottom right")
- textfont : 设置text的字体属性;
一个小图例:
import dash
import dash_core_components as dcc
import dash_html_components as html
import plotly.graph_objs as go
app = dash.Dash()
server = app.server
def get_show_scatter():
sctx = ['2019/1/1', '2019/1/2', '2019/1/3', '2019/1/4', '2019/1/5']
scty = [3607, 3834, 3904, 4080, 3997]
trace = go.Scatter(
x=sctx,
y=scty,
name='活跃用户'
)
layout=go.Layout(
title='活跃用户信息',
yaxis={
'hoverformat': '' #如果想显示小数点后两位'.2f',显示百分比'.2%'
}
)
return go.Figure(
data = [trace],
layout = layout
)
app.layout = html.Div([
dcc.Graph(
id='show_scatter',
figure=get_show_scatter()
),
], style={'margin': 100})
if __name__ == '__main__':
app.run_server(debug=True)
结果是这样的: