0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python 使用Dash快速可視化數(shù)據(jù)

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-11-02 14:26 ? 次閱讀

還記得上篇文章我們采用Plotly去畫出各式各樣的圖,這次我們就來講講,如何把這些圖片展示在你的前端上。

Dash也是Plotly制作團隊開源出來的一款dashboard開發(fā)平臺,主要使用python寫的,它主要可以將我們畫出來的數(shù)據(jù)展示在網(wǎng)頁上。Dash最大的優(yōu)點就是你在生成前端的時候不需要寫任何javascript代碼(已經(jīng)全在底層封裝好,畫圖特效是react.js寫的,有興趣可以去研究一下源碼),它可以直接使用Python代碼將你之前在Plotly畫出的圖在網(wǎng)頁上直接展示出來。

需要安裝的庫:

pip install plotly
pip install dash

下面我們來演示一個Dash的demo:

新建一個app.py文件,復(fù)制以下代碼:

import dash
import dash_core_components as dcc
import dash_html_components as html

external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

app = dash.Dash(__name__, external_stylesheets=external_stylesheets)

app.layout = html.Div(children=[
    html.H1(children='Dash Demo', style={"text-align": "center"}),

    html.Div(children='''
        一款牛逼的Python開發(fā)的應(yīng)用程序---------Dash
    ''',
             style={"text-align": "center", "color": "red"}),

    dcc.Graph(
        id='example-graph',
        figure={
            'data': [
                {'x': [1, 2, 3], 'y': [3, 4, 2], 'type': 'bar', 'name': '數(shù)據(jù)源A'},
                {'x': [1, 2, 3], 'y': [2, 3, 5], 'type': 'bar', 'name': '數(shù)據(jù)源B'},
            ],
            'layout': {
                'title': '數(shù)據(jù)展示'
            }
        }
    )
])

if __name__ == '__main__':
    app.run_server(debug=True)

運行效果:

圖片

下面來說明一下,如何去使用Dash這個框架:

S1: 初始化

app = dash.Dash(__name__, external_stylesheets=external_stylesheets)

這句話主要用來初始化渲染Dash,可以按照你制定的樣式進行渲染。

external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

代碼中引用的網(wǎng)址是plotly自己的css樣式,你也可以修改成你自己想要的其他樣式,把這個css文件down到本地然后你可以對他進行修改。具體參考:

https://dash.plotly.com/external-resources

下面重點來了!

在頁面上添加你想要添加的元素,首先我們需要初始化頁面的布局:

app.layout = html.Div(children=[])

初始化完畢后我們就可以向這個布局中添加元素了,我們只需要在childern這個list中添加相應(yīng)的頁面元素即可:(注意:每個元素都在list中)

****S2: 添加標簽

添加h1標題

html.H1(children='Dash Demo', style={"text-align": "center"}),

添加一個div

html.Div(children='一款牛逼的Python開發(fā)的應(yīng)用程序---------Dash',
             style={"text-align": "center", "color": "red"}),

我們可以在里面添加style參數(shù)來制定它的樣式。

****S3: 添加你畫的圖

Graph對象主要就是用來進行畫圖的,你只需要將畫圖的數(shù)據(jù)傳遞給figure參數(shù)即可。

dcc.Graph(
        id='example-graph',
        figure={
            'data': [
                {'x': [1, 2, 3], 'y': [3, 4, 2], 'type': 'bar', 'name': '數(shù)據(jù)源A'},
                {'x': [1, 2, 3], 'y': [2, 3, 5], 'type': 'bar', 'name': '數(shù)據(jù)源B'},
            ],
            'layout': {
                'title': '數(shù)據(jù)展示'
            }
        }
    )

這里說一下,plotly畫出的每個對象都能直接當成參數(shù)傳入。

我們看一個例子:選擇我們上次畫等高線圖,直接插入畫好的fig對象。

import plotly.graph_objects as go
fig = go.Figure(data=
        go.Contour(
            z=[[10, 10.625, 12.5, 15.625, 20],
               [5.625, 6.25, 8.125, 11.25, 15.625],
               [2.5, 3.125, 5., 8.125, 12.5],
               [0.625, 1.25, 3.125, 6.25, 10.625],
               [0, 0.625, 2.5, 5.625, 10]]
        ))
......... dcc.Graph(        id='example-graph',
        figure=fig
    )

圖片

添加多個圖:

圖片

****S4: 添加常見的網(wǎng)頁控件

輸入框:

dcc.Input(id='my-id',
              value='2333',
              type='text'
              ),

圖片

下拉框:

dcc.Dropdown(
        options=[
            {'label': 'New York City', 'value': 'NYC'},
            {'label': 'Montréal', 'value': 'MTL'},
            {'label': 'San Francisco', 'value': 'SF'}
        ],
        value='MTL'
    ),

圖片

滑動條:

dcc.Slider(
        min=0,
        max=9,
        marks={i: 'level{}'.format(i) for i in range(10)},
        value=5,
    ),

圖片

復(fù)選框:

dcc.Checklist(
    options=[
        {'label': 'New York City', 'value': 'NYC'},
        {'label': 'Montréal', 'value': 'MTL'},
        {'label': 'San Francisco', 'value': 'SF'}
    ],
    values=['MTL', 'SF']
)

MarkDown格式:

dcc.Markdown('''
Dash and Markdown

Dash supports [Markdown](http://commonmark.org/help).

Markdown is a simple way to write and format text.
It includes a syntax for things like **bold text** and *italics*,
[links](http://commonmark.org/help), inline `code` snippets, lists,
quotes, and more.
''')

****S5: 啟動你的應(yīng)用

if __name__ == '__main__':
    app.run_server(debug=True)

debug在調(diào)試的時候可以打開,部署在生產(chǎn)環(huán)境的時候記得改成Fasle,還有個參數(shù)use_reloader,如果你是在jupyter寫代碼,該參數(shù)需要設(shè)置成False。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    6808

    瀏覽量

    88743
  • 可視化
    +關(guān)注

    關(guān)注

    1

    文章

    1166

    瀏覽量

    20856
  • python
    +關(guān)注

    關(guān)注

    55

    文章

    4767

    瀏覽量

    84375
  • DASH
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    2673
收藏 人收藏

    評論

    相關(guān)推薦

    數(shù)據(jù)可視化Python-matplotlib概述

    數(shù)據(jù)可視化(二):Python-matplotlib
    發(fā)表于 07-22 14:58

    python數(shù)據(jù)可視化的方法和代碼

    Python數(shù)據(jù)可視化匯總
    發(fā)表于 10-14 14:59

    Python數(shù)據(jù)可視化專家的七個秘密

    分享 Python數(shù)據(jù)可視化專家的七個秘密
    發(fā)表于 05-15 06:43

    python數(shù)據(jù)可視化之畫折線圖

    python數(shù)據(jù)可視化之畫折線圖,散點圖
    發(fā)表于 05-27 08:09

    Python數(shù)據(jù)可視化

    Python數(shù)據(jù)可視化:網(wǎng)易云音樂歌單
    發(fā)表于 07-19 08:30

    三維可視化的應(yīng)用和優(yōu)勢

    ,為此三維可視化運維系統(tǒng)登場了?! ∪S可視化的應(yīng)用  宏觀場景可視化:在特定的環(huán)境中對隨著時間推移而不斷變化的目標實體進行檢測,可以直觀、靈活、逼真的展示所處區(qū)域的情景和環(huán)境,可以快速
    發(fā)表于 12-02 11:52

    經(jīng)驗分享|BI數(shù)據(jù)可視化報表布局——容器

    容器功能是一種用于數(shù)據(jù)可視化圖表排版的功能,主要作用對圖表進行有效的布局調(diào)整,或者用于巧妙在同一地方安排多個不同類型的數(shù)據(jù)可視化圖表,供使用者點擊切換瀏覽。目前,在奧威BI軟件上一同有
    發(fā)表于 03-15 17:10

    Python拉勾網(wǎng)數(shù)據(jù)采集與可視化

    本文是先采集拉勾網(wǎng)上面的數(shù)據(jù),采集的是Python崗位的數(shù)據(jù),然后用Python進行可視化。主要涉及的是爬蟲&
    的頭像 發(fā)表于 03-13 14:18 ?3222次閱讀
    <b class='flag-5'>Python</b>拉勾網(wǎng)<b class='flag-5'>數(shù)據(jù)</b>采集與<b class='flag-5'>可視化</b>

    使用Python可視化數(shù)據(jù),機器人開發(fā)編程

    機器學習開發(fā),與Mail.Ru Search數(shù)據(jù)分析負責人Egor Polusmak和Mail.Ru Group數(shù)據(jù)科學家Yury Kashnitsky一起探索如何使用Python可視化
    的頭像 發(fā)表于 03-15 16:56 ?8915次閱讀

    數(shù)據(jù)可視化的常用技術(shù)和并行與原位可視化方法分析

    數(shù)據(jù)可視化就是將抽象的“數(shù)據(jù)”以可見的形式表現(xiàn)出來,幫助人理解數(shù)據(jù)。大數(shù)據(jù)可視化相對傳統(tǒng)的
    的頭像 發(fā)表于 04-17 16:51 ?6382次閱讀

    Python實現(xiàn)PLC數(shù)據(jù)可視化呈現(xiàn)于Web端

    現(xiàn)介紹另一種通過Python實現(xiàn)PLC數(shù)據(jù)可視化呈現(xiàn)于Web端的方案。
    的頭像 發(fā)表于 08-30 11:27 ?6959次閱讀
    <b class='flag-5'>Python</b>實現(xiàn)PLC<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>可視化</b>呈現(xiàn)于Web端

    Python數(shù)據(jù)可視化編程實戰(zhàn)

    Python數(shù)據(jù)可視化編程實戰(zhàn)資料免費下載。
    發(fā)表于 06-01 14:37 ?29次下載

    使用arduino和python可視化你的比特幣收益和損失

    電子發(fā)燒友網(wǎng)站提供《使用arduino和python可視化你的比特幣收益和損失.zip》資料免費下載
    發(fā)表于 12-21 16:50 ?0次下載
    使用arduino和<b class='flag-5'>python</b><b class='flag-5'>可視化</b>你的比特幣收益和損失

    使用Python來收集、處理和可視化人口數(shù)據(jù)

    如何使用Python這一流行的編程語言來收集、處理和可視化印度和中國的人口數(shù)據(jù)呢?本文將向你介紹一些基本的步驟和技巧,幫助你掌握Python進行可視
    的頭像 發(fā)表于 06-21 17:08 ?1316次閱讀
    使用<b class='flag-5'>Python</b>來收集、處理和<b class='flag-5'>可視化</b>人口<b class='flag-5'>數(shù)據(jù)</b>

    Python 可視化如何配色

    我們在利用Python進行數(shù)據(jù)可視化時,有著大量的高質(zhì)量庫可以用,比如: Matplotlib 、 seaborn 、 Plotly 、 Bokeh 、 ggplot 等等。但圖表好不好看,配色占
    的頭像 發(fā)表于 10-30 15:43 ?480次閱讀
    <b class='flag-5'>Python</b> <b class='flag-5'>可視化</b>如何配色