Python数据可视化Dash+Bootstrap
Python基于Dash+Bootstrap的数据可视化
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
Dash框架是基于flask、React 、plotly开发的可视化框架,不仅对其进行了集成、还将繁琐的方法统一起来。简单好学,通过极少量的代码就可以实现炫酷的可视化界面,简直不要太方便。
效果如下:

可视化图形,八大功能
下载图片、变焦、图片移动、框中选择、套索选中、放大、缩小、居中显示

代码实现思路
主要分为两点
1、app.py中编写程序代码。包含创建画布、绘制图形、界面布局三个部分
2、assets文件下的myapp.css文件进行界面布局、界面渲染*

有道友问:Dash是怎么找到路径的呢?如下图:


Dash默认识别文件夹名为assets,可自行更改。
环境配置
pip install dash -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
上代码
app.py
import dash
import dash_core_components as dcc
import dash_html_components as htmlapp=dash.Dash()def tiaoxing():return html.Div([html.P([]),dcc.Graph(id='tx',figure={'data':[{'x':[4,6,8],'y':[12,16,18],'type':'bar','name':'chart one'},{'x':[4,6,8],'y':[20,24,28],'type':'bar','name':'chart two'}],'layout':{'title':'simple bar chart',}})
],className='tiaoxing')def zhexiantu():return html.Div([html.P([]),dcc.Graph(id='xtq',figure={'data':[{'x':[1,2,3,4,5,6,7,8,9,10,11],'y':[5,8,11,32,41,5,2,7,16,4,8],'type':'Scatter','name':'one'},{'x': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], 'y': [5,6,3,7,1,5,48,2,3,58,4,],'type': 'Scatter', 'name': 'two'}],'layout':{'title':'折线图'}})],className='zhexiantu')
a=16
def bink():return html.Div([html.P([]),dcc.Graph(id='btk',figure={'data': [{'labels': ['one', 'two', 'three', 'four', 'five', 'six'],'values': [50, 34, 86, 75, 64, 39], 'type': 'pie', 'hole': '0.8', 'name': '饼图', 'size': '100'}],'layout': {'title':'bingtu'}})], className='bintuk')def sandiantu():import numpy as npb = np.random.uniform(1, 3, size=300)c = 0.5 * b ** 2 + b + 2 + np.random.normal(0, 1, size=300)return html.Div([html.P([]),dcc.Graph(id='sdt',figure={'data':[{'x':b,'y':c,'type':'Scatter','mode':'markers','name':"散点图"}],'layout':{'title':'sandian'}})],className='sandiantu')
def bintu():return html.Div([html.P([]),dcc.Graph(id='bt',figure={'data':[{'labels':['one', 'two', 'three', 'four', 'five', 'six'],'values':[280, 25, 10, 100, 250, 270],'type':'pie','name':'bingtu','size':'100'}],'layout':'bingtu'})],className='bintu')
def row1():return html.Div([tiaoxing(),bink(),sandiantu()], className='row')
def row2():return html.Div([zhexiantu(),bintu()],className='row')
def row3():return html.Div([row1(),row2()],className='di')
app.layout=html.Div([html.H1(["交互式电子信息可视化"],style={'margin':'2% auto','color':'white'}),row3(),
],className='card')if __name__ =='__main__':app.run_server(port=4050)
项目完整代码请点击我的云盘
提取码:mk3b
如有任何问题,欢迎在下方留言,谢谢!
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
