Python可視化Dash教程簡譯(一)

2021-02-13 蘿蔔大雜燴

 作為數據分析的重要一環,把得到的數據或者分析結果以圖表的方式展示,是一種直觀、優雅的方式。Dash是基於Flask的Python可視化工具,我在學習之餘嘗試著翻譯官方的Tutorial,有不足之處,還望不吝指正

Dash layout


Dash應用程式由兩部分組成:第一部分是Dash應用程式的「layout」,它描述了應用程式的外觀。第二部分描述了應用程式的交互性。

01.Dash 安裝

pip install dash==0.34.0

pip install dash-html-components==0.13.4

pip install dash-core-components==0.41.0

pip install dash-table==3.1.11

01.Dash layout

Dash為應用程式的所有可視組件提供Python類,我們在dash_core_components和dash_html_components庫中維護了一組組件,同時我們也可以使用JavaScript和React.js構建自己的組件。

創建文件app.py

運行這個app

$ python app.py

...Running on http://127.0.0.1:8050/ (Press CTRL+C to quit)

在瀏覽器中訪問http:127.0.0.1:8050/,可以看到如下頁面:

我們注意到:

1. 布局由一個組件樹組成,如html.Div和dcc.Graph

2. dash_html_components庫為每一個HTML標籤都提供一個組件。html.H1(children='Hello Dash')組件在我們的應用程式中產生了一個<h1>Hello Dash</h1>HTML元素。

3. 並不是所有的組件都是純HTML,dash_core_components描述了更搞級別的組件。這些組件是交互式的,並通過JavaScript、HTML和CSS等生成。

4. 每個組件都完全通過關鍵字屬性來描述。Dash是聲明性的:你將主要通過這些屬性來描述應用程式。

5. children屬性是特殊的。按照慣例,它始終都是第一個屬性,這意味著你可以省略它:html.H1(children='Hello Dash')與 html.H1('HelloDash')是相同的。此外,它還可以包含字符串,數字,單個組件或者組件列表。

dash_html_components庫包含每個HTML標籤的組件類以及所有HTML參數的關鍵字參數。

我們來通過修改組件的內聯樣式來自定義應用程式中的文本:

在例子中,我們通過style屬性修改了html.Div和html.H1的內聯樣式。

html.H1('Hello Dash', style={'textAlign':'center', 'color': '#7FDBFF'})在Dash程序中呈現為<h1 style="text-align: center; color: #7FDBFF">HelloDash</h1>。

dash_html_components和HTML屬性有幾點重要的不同:

1. 在HTML中,style屬性是以分號分隔的字符串。在Dash中,你可以使用一個字典。

2. style字典裡的鍵值是cameCase(駝峰樣式)的,不是 text-align, 而是 textAlign。

3. HTML類屬性是Dash中的className。

4. HTML標籤的子項是通過children關鍵字參數指定的。按照慣例,這始終是第一個參數,所以通常被省略。

除此之外,你還可以在Python上下文中使用所有可用的HTML屬性和標籤。

03.可復用組件

通過在Python中編寫標記,我們可以創建複雜的可復用組件,如表,而無需切換上下文或語言。

一個例子,從Pandas數據集中生成表格:

04. 關於可視化的更多信息

dash_core_components庫包含一個名為Graph的組件。Graph使用開源plotly.js圖形庫呈現交互式數據可視化。plotly.js支持超過35種圖表類型,並在vector-quality SVG和high-performance WebGL中呈現圖表。

同時,dash_core_components.Graph組件中的figure參數與plotly.js使用的圖形參數是相同的。

一個例子,從Pandas數據集創建散點圖:

05. Markdown

可以使用dash_core_components庫中的Markdown組件來編寫大量的文本塊。

06. 核心組件

dash_core_components庫包含一組更高級別的組件,如下拉列表,圖形等。

與所有Dash組件一樣,它們完全以聲明的方式描述。

下面是一些可用的組件

可以使用help來查看更多的組件用法。

>>> help(dcc.Dropdown)

class Dropdown(dash.development.base_component.Component)

|  A Dropdown component.

|  Dropdown is an interactive dropdown element for selecting one or more

|  items.

|  The values and labels of the dropdown items are specified in the `options`

|  property and the selected item(s) are specified with the `value` property.

|

|  Use a dropdown when you have many options (more than 5) or when you are

|  constrained for space. Otherwise, you can use RadioItems or a Checklist,

|  which have the benefit of showing the users all of the items at once.

|

|  Keyword arguments:

|  - id (string; optional)

|  - className (string; optional)

|  - disabled (boolean; optional): If true, the option is disabled

|  - multi (boolean; optional): If true, the user can select multiple values

|  - options (list; optional)

|  - placeholder (string; optional): The grey, default text shown when no option is selected

|  - value (string | list; optional): The value of the input. If `multi` is false (the default)

|  then value is just a string that corresponds to the values

|  provided in the `options` property. If `multi` is true, then

|  multiple values can be selected at once, and `value` is an

|  array of items with values corresponding to those in the

|  `options` prop.```

06. 綜述

Dash應用程式的布局描述了應用程式的外觀,布局是組件的分層樹。

dash_html_components庫為所有HTML標籤提供類,同時關鍵字參數描述HTML屬性,例如style,className和ID。

dash_core_components庫生成高級別的組件,如控制項和圖形。

收錄了機器學習大數據的全套學習資料,在公眾號回復AI即可獲得!

如果喜歡我的文章,那就關注我吧!

萬分感謝!

相關焦點

  • 【Python教程】用Python進行數據可視化
    一、可視化示例任務$ python --versionPython 3.6.9$ pip3 --versionpip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)
  • 推薦: 一本「高顏值」的Python語言數據可視化圖書
    Rggplot2有兩本很經典的教程:ggplot2 Elegant Graphicsfor Data Analysis和R Graphics Cookbook,兩本書重點介紹了ggplot2包的繪圖語法及常見圖表的繪製方法。另外,《R語言數據可視化之美》基於R中的ggplot2包及其拓展包等,系統性地介紹了幾乎所有常見的二維和三維圖表的繪製方法。
  • Python可視化教程(上)-基礎篇
    經過學習之後,我總結了利用python實現可視化的三個步驟:確定問題,選擇圖形轉換數據,應用函數參數設置,一目了然python中最基本的作圖庫就是matplotlib,是一個最基礎的Python可視化庫,一般都是從matplotlib上手Python數據可視化,
  • Python數據可視化教程之基礎篇
    經過學習之後,我總結了利用python實現可視化的三個步驟:確定問題,選擇圖形轉換數據,應用函數參數設置,一目了然python中最基本的作圖庫就是matplotlib,是一個最基礎的Python可視化庫,一般都是從matplotlib上手Python數據可視化,
  • Python機器學習·微教程
    該教程共分為11小節。在這個教程裡,你將學會:如何處理數據集,並構建精確的預測模型使用Python完成真實的機器學習項目這是一個非常簡潔且實用的教程,希望你能收藏,以備後面複習!接下來進入正題~這個微課程適合誰學習?如果你不符合以下幾點,也沒關係,只要花點額外時間搞清楚知識盲點就能跟上。
  • 入門Python, 看這些資料就夠了
    【Python3 菜鳥教程】連結:Python 基礎教程(http://www.runoob.com/python3/python3-tutorial.html)簡介:基本入門級教程,另外附了簡單的進階教程
  • 如何構建一個基於可視化理論的完美Python圖表?
    圖源:unsplash將數據轉換為可視化圖表是門學問。對圖形的每一處著墨都是至關重要的。本教程只有所需的少數幾行代碼,以便簡潔真實地展示數據。對於所有的數據科學家和信息學迷,《定量信息的視覺展示》絕對是一本咖啡桌書籍。在展示信息方面這本書是無可爭議的王,而且趣味性十足。
  • 【python】Tkinter可視化窗口(三)
    閱讀大概需要2分鐘跟隨小博主,每天進步一丟丟
  • MNE-Python的簡易中文教程簡單入門
    MNE-Python是一個基於Python的用於探索、可視化與分析人腦神經生理數據的開源軟體,MNE-Python的代碼設計基於面向對象的編程思想,其具有高效(多核的CPU和GPU計算)、易用(代碼簡單並可進行可視化)且靈活(對各種數據的支持)三大特性。
  • Python 可視化神器--Plotly
    學習Python是做數分析的最基礎的一步,數據分析離不開數據可視化。Python第三方庫中我們最常用的可視化庫是 pandas,matplotlib,pyecharts,當然還有 Tableau,另外最近在學習過程中發現另一款可視化神器-Plotly,它是一款用來做數據分析和可視化的在線平臺,功能非常強大,可以在線繪製很多圖形比如條形圖、散點圖、餅圖、直方圖等等。
  • 【Python教程】圖片轉字符畫
    用Python將彩色的圖片經過一系列的操作後,可以變為全是由字符組成的字符畫,最後可以輸出為txt文件。txt文件可以用文本打開,放大或縮小查看。--versionPython 3.6.9$ pip3 --versionpip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)PIL(pillow)是一個Python圖像處理庫,使用下面的命令來安裝pillow(PIL)庫:注意: Pillow是Python裡的圖像處理庫
  • 數據科學中一些不常用但很有用的Python庫
    導讀提到數據科學的python包,大家想到的估計是numpy,pandas,scikit-learn之類的,這裡給大家介紹一些不常用,但是非常有用的python包,就像是痒痒撓,雖然大部分時間用不上,但是真要用起來,還是挺爽的。
  • Python的可視化工具概述
    >ggplotBokehpygalPlotly在例子用,我將使用pandas操作數據,並啟動其可視化.在大多數情況下使用這些工具不需要pandas,但是我覺得pandas+可視化工具如此普遍,這是最好的起點。
  • Python數據分析可視化教程學習
    來源:博學谷 作者:照照隨著數據分析與數據挖掘行業的日益火爆,Python數據分析可視化教程也成為了許多人提升職業競爭力的必修課。本文將詳細為大家介紹Python數據分析可視化教程的具體內容,全文會圍繞著為什麼學?學什麼?學了有什麼用?
  • 13分鐘,教你python可視化分析20W數據,找到妹子最愛的內衣
    一提到爬取,我們肯定先想到python,那可真的是利器,不過我提醒一句,不允許爬的千萬不要碰。python雖然爬取簡單,但是做可視化分析需要費不少力氣,雖然有 Matplotlib 和 Seaborn 兩個包就足夠了。
  • python教程
    python視頻教程     文章底部留言 序號 給您發送視頻教程連結或者加微信 bigzql 索要Python
  • 23 標籤頁Tabs教程(plotly Dash Bootstrap版)
    今天第23課,本節課程主要學習Dash Bootstrap Components中的標籤頁Tabs,類似頁面中常見的對話框,在python
  • -plasia/冠詞/em dash、en dash、hyphen
    破折號(em dash; —)、連接號(en dash;–)、連字符(hyphen; -)的區別破折號(em dash; —)、連接號(en dash;–)、連字符(hyphen三者的區別如下:hyphen(-)用於複合詞,如up-regulated、co-infection、non-linear;en dash(–)用於表示數據範圍,如2000–2008;需要注意的是,如果數據範圍裡有負數,儘量避免用en dash,如:-5–10(錯誤)/ -5 to 10 (正確); -8–-6(錯誤)/ -8 to -6(正確)。
  • 使用biopython可視化染色體和基因元件
    基因組結構元件的可視化有多種方式,比如IGV等基因組瀏覽器中以track為單位的展示形式,亦或以circos為代表的圈圖形式,比如在細胞器基因組組裝中,基因元件常用圈圖形式展示,示例如下
  • Python-plotnine 核密度空間插值可視化繪製
    從本期開始,我會陸續推出系列空間插值的推文教程,包括常見的「Kriging(克裡金插值法)、Nearest Neighbor(最近鄰點插值法)、Polynomial Regression(多元回歸法)、Radial Basis Function(徑向基函數法)」 等多種空間插值方法,探索空間可視化帶給我們的視覺魅力