- Python數(shù)據(jù)分析:基于Plotly的動態(tài)可視化繪圖
- 孫洋洋等
- 1156字
- 2019-10-21 11:58:28
2.1 基礎案例解讀
下面通過案例介紹在Python語言中使用Plotly繪圖模塊庫。由于使用在線繪圖模式繪圖速度較慢,而且使用在線繪圖模式需要注冊賬號,所以這里只介紹離線繪圖模式。
案例2-1的文件名是first_start_introduction.py,講解使用Plotly繪圖模塊庫進行最簡單的繪圖。
為了便于逐行講解案例,此處采用直接截圖的方式展示代碼,如圖2-1所示。

圖2-1 案例2-1代碼截圖
案例2-1代碼逐行說明如下。
●第1行,說明該代碼文件使用的是UTF-8編碼格式,也是Python的例行文件頭。
●第2~4行,導入(import)所需的模塊庫。
●第6行,定義一個名為trace0的變量,用于保存繪圖數(shù)據(jù);Plotly一般稱一個繪圖對象為trace(畫痕、畫軌、畫跡);每個繪圖對象都由Plotly模塊庫里面的graph_objs(圖像對象)子模塊的Scatter(數(shù)據(jù)布局)對象定義;Scatter對象的輸入數(shù)據(jù)與Plotly繪圖模塊庫中的許多函數(shù)和對象一樣,都是字典格式,而且接受多種復雜的復合字典格式。
●第7~8行,定義變量trace0的x和y坐標,坐標采用列表數(shù)據(jù)格式,坐標x、y的數(shù)據(jù)長度必須一樣,不然會出現(xiàn)空缺坐標;其中的x、y字符是Plotly模塊庫Scatter對象的內(nèi)部變量名稱,類似關鍵字。
●第10~12行,定義另外一條曲線trace1的坐標數(shù)據(jù),細節(jié)參見第6~8行的說明。
●第14行,定義一個變量名data,通過pygo模塊庫的Data函數(shù),把代表兩條曲線的變量trace0和trace1定義為一組圖形數(shù)據(jù),注意Data函數(shù)的輸入?yún)?shù)是列表數(shù)據(jù)格式,所以要在變量trace0和trace1外面加上表示列表的“[]”符號。
●第16行,根據(jù)data變量的數(shù)據(jù)繪制圖形。若代碼無誤,正確運行后,程序會自動調(diào)用瀏覽器,打開生成的圖形,并提供互動顯示,運行結果如圖2-2所示。

圖2-2 案例2-1 運行結果
●第20行,運行結束后,輸出“ok”信息。本程序運行后,輸出的圖形是通過瀏覽器顯示的,有時瀏覽器在后臺,不知道程序運行已經(jīng)完成,所以在程序最后增加了一行運行結束的提示信息。
案例2-1的第17行和第18行代碼表示不同的輸出模式,下面詳細說明。
第16行中的filename參數(shù),文件名格式必須以“.html”為后綴,以“.htm”為后綴會出錯,讀者可以嘗試一下。
運行第17行和第18行代碼時,請先屏蔽第16行代碼,以免混亂。
第17行不使用filename參數(shù)定義文件名,Plotly模塊庫會自動在當前代碼目錄下生成一個名為temp-plot.html的文件,并自動用瀏覽器打開。對于多個圖形,Plotly模塊庫會生成多個HTML文件,再用瀏覽器自動打開,用戶需要自己設置文件名,否則新的圖形文件會覆蓋舊的圖形文件。
第18行使用image參數(shù),設置輸出的靜態(tài)圖片格式為PNG格式,image參數(shù)支持PNG、JPEG、SVG、WebP格式,默認是None(無)。
與其他繪圖模塊庫不同,Plotly生成的不是圖形文件,而是一個內(nèi)置JavaScript腳本的HTML網(wǎng)頁文件,最終的圖像文件需要調(diào)用瀏覽器的渲染引擎才能生成。
用戶設置image圖形輸出格式后,瀏覽器會彈出一個下載圖片對話框,需要用戶手動保存輸出的圖形,如圖2-3所示。

圖2-3 下載圖片對話框
可能因為Plotly繪圖模塊庫重點是云端及商業(yè)用戶,所以對離線用戶有些限制,這也算是目前Plotly的一個小bug,希望未來的版本能夠改進。
- 公有云容器化指南:騰訊云TKE實戰(zhàn)與應用
- 計算機組成原理與接口技術:基于MIPS架構實驗教程(第2版)
- GitHub Essentials
- PyTorch深度學習實戰(zhàn):從新手小白到數(shù)據(jù)科學家
- Voice Application Development for Android
- 分布式數(shù)據(jù)庫系統(tǒng):大數(shù)據(jù)時代新型數(shù)據(jù)庫技術(第3版)
- 數(shù)據(jù)驅(qū)動:從方法到實踐
- 一個64位操作系統(tǒng)的設計與實現(xiàn)
- Learning Proxmox VE
- 科研統(tǒng)計思維與方法:SPSS實戰(zhàn)
- 探索新型智庫發(fā)展之路:藍迪國際智庫報告·2015(上冊)
- 一本書講透Elasticsearch:原理、進階與工程實踐
- 大數(shù)據(jù)分析:數(shù)據(jù)倉庫項目實戰(zhàn)
- Hadoop 3實戰(zhàn)指南
- Oracle 11g+ASP.NET數(shù)據(jù)庫系統(tǒng)開發(fā)案例教程