Dash是基于Flask的Python可视化工具,严格说来由三个部分组成,首先是Flask提供了标准web环境,再次是plotly这个图表可视化工具,最后是与dash相配套的html、图表等交互式组件。本人也陆续试过pyechart,但就集成性和可视化而言,与dash还是有一定差距。
代码示例
- import dash –集成flask
- import dash_core_components as dcc –与图表相关的核心组件
- import dash_html_components as html –与HTML交互相关的组件
- import plotly.graph_objects as go –plotly的底层组件
- import plotly.express as px –plotly的高阶组件,同时提供了内置的数据集
- fig = go.Figure()
- fig = go.Figure(data=go.Bar(y=[2, 3, 1]))
- # fig.add_trace( … )
- # fig.update_layout( … )
- df = px.data.gapminder()
- df = px.data.gapminder().query("country=='China'")
- fig = px.line(df, x="year", y="lifeExp", title='人口增长率')
- app = dash.Dash()
- app.layout = html.Div([
- dcc.Graph(figure=fig)
- ])
- app.run_server(debug=True, use_reloader=False)
- ?
Plotly Express是对 Plotly.py 的高级封装,内置了大量实用、现代的绘图模板,用户只需调用简单的API函数,即可快速生成漂亮的互动图表,可满足90%以上的应用场景。
plotly.express附带了一些用于演示、教育和测试目的的内置数据集。
这些数据以CSV格式存储在包的目录下,以pandas类型获取到数据,方便进行图表功能测试。
1、gapminder():每一行代表一个国家在给定的年份GDP、人口增长等信息。包含1704行和以下列:
- ['country', 'continent', 'year', 'lifeExp', 'pop', 'gdpPercap', 'iso_alpha', 'iso_num'].
2、tips():每行代表一张餐厅账单。包含244行和以下列:
- ['total_bill', 'tip', 'sex', 'smoker', 'day', 'time', 'size'].
3、iris():每行代表一朵花。包含150行和以下列:
- ['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'species', 'species_id'].
4、wind():每行表示一个基本方向上的风强度级别及其频率。包含128行和以下列:
- ['direction', 'strength', 'frequency'].
5、election():每一行代表2013年蒙特利尔市长选举中一个选区的投票结果。包含58行和以下列:
- ['district', 'Coderre', 'Bergeron', 'Joly', 'total', 'winner', 'result', 'district_id'].
6、election_geojson():每个功能代表2013年蒙特利尔市长选举中的一个选区。
GeoJSON格式的“dict”,具有58个多边形或多多边形特征,其“id”是一个选区数字ID,其'district'属性是ID和地区名称。
7、carshare():每一行表示在蒙特利尔呆了一个月,区域中心附近的汽车共享服务的可用性。包含249行和以下列:
- ['centroid_lat', 'centroid_lon', 'car_hours', 'peak_hour'].
8、stocks(indexed=False):这一广泛数据集中的每一行代表2018/2019年6只科技股的收盘价。包含100行和以下列:
- ['date', 'GOOG', 'AAPL', 'AMZN', 'FB', 'NFLX', 'MSFT'].
9、experiment(indexed=False):这个大数据集中的每一行代表100名模拟参与者在三个假设实验中的结果,以及他们的性别和对照/治疗组。包含100行和以下列:
- ['experiment_1', 'experiment_2', 'experiment_3', 'gender', 'group'].
10、medals_wide(indexed=False):此数据集表示截至2020年前三名国家的奥运会短道速滑奖牌表。包含3行和以下列:
- ['nation', 'gold', 'silver', 'bronze'].
11、medals_long(indexed=False):此数据集表示截至2020年前三名国家的奥运会短道速滑奖牌表。包含9行和以下列:
- ['nation', 'medal', 'count'].