官术网_书友最值得收藏!

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的xy坐標,坐標采用列表數(shù)據(jù)格式,坐標xy的數(shù)據(jù)長度必須一樣,不然會出現(xiàn)空缺坐標;其中的xy字符是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,希望未來的版本能夠改進。

主站蜘蛛池模板: 张家口市| 双峰县| 溧水县| 盐山县| 清丰县| 泸溪县| 安顺市| 伽师县| 右玉县| 乐东| 河北省| 哈密市| 临夏县| 宕昌县| 柳州市| 黄浦区| 阿克苏市| 咸阳市| 临朐县| 昭苏县| 松滋市| 华池县| 宣恩县| 崇明县| 廉江市| 康平县| 温宿县| 东乌珠穆沁旗| 荥阳市| 商洛市| 株洲市| 贡嘎县| 鄂尔多斯市| 南投市| 河东区| 延庆县| 荔波县| 尼玛县| 通州市| 平邑县| 昌宁县|