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 html

app=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 np
    b = 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
如有任何问题,欢迎在下方留言,谢谢!

  • 12
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会振刀的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值