就筆者使用的經驗而言,Matplotlib主要存在兩大缺陷:首先,Matplotlib是一個靜態的繪圖模塊,即我們繪出的圖像是靜態的,就像用看圖軟件打開圖片一樣,沒有網頁繪圖的交互式效果;其次,Matplotlib繪圖結果的分享很不方便,在繪圖結果分享給別人時隻能以圖片的方式分享,別人看到的繪圖結果完全是靜態的,分享體驗很不好。Matplotlib一直以來都是 Python可視化的主力軍,但是確實存在無法克服的缺陷,並且其他的Python繪圖模塊如Ggplot、Bokeh、Pygal等都比較小眾,繪圖功能比較單一,完成不了對Matplotlib的替代。
為了解決 Python在可視化中存在的問題,Plotly應運而生,它是一個基於JavaScript的動態繪圖模塊。Plotly的繪圖效果與我們在網頁上看到的動態交互式繪圖效果是一樣的,其默認的繪圖結果是一個HTML網頁文件,通過瀏覽器就可以查看。我們可以把這個HTML文件分享給其他人,對方看到的效果與我們在本機上看到的效果完全一樣。
Plotly有著自己強大又豐富的繪圖庫,支持各種類型的繪圖方案。Plotly是基於JavaScript的繪圖庫,所以其繪圖結果可以與Web應用無縫集成。總之,Plotly在繪圖模塊上是Matplotlib強有力的競爭對手,Plotly繪圖的種類豐富、效果美觀、易於保存與分享,因而越來越受數據分析人士的喜愛,至少筆者對Plotly的喜愛勝於對Matplotlib的喜愛。
Plotly最初是一款商業化的繪圖軟件,在2015年11月12日,Plotly開發團隊決定把該模塊的核心框架plotly.js開源,由此Plotly得到了快速發展。雖然在2016年6月,Plotly開發團隊才正式發布其Python-api文檔,在2017年 1月,Plotly 1.0才正式發布,但是這些都阻止不了程序員對Plotly的喜愛。自plotly.js開源之後,我們可以使用本地的離線模式進行繪圖,不依賴於官方的服務器,使得繪圖速度更快,效果與在線繪圖一樣,這也是目前使用Plotly繪圖的主流模式。
市麵上有很多關於 Matplotlib的可視化繪圖教程,但是還沒有 Plotly的相關圖書,作為一款非常優秀的可視化繪圖模塊,市麵上急需一本科普性的圖書。在本書創作之前,市麵上就已經出現了電子版的對Plotly的簡單翻譯版本《Plotly中文說明1期》,這是極寬量化開源團隊在2017年1月的作品。極寬量化開源團隊是一群研究“Python量化投資”的愛好者自願組成的一個團隊,該團隊成立的初衷是為國內量化投資領域做出自己的一份貢獻,目前已經成功初步翻譯PyAlgoTrade、Seaborn、StatsModels、Plotly等開源模塊,並公開上傳到網絡上,《Plotly中文說明 1期》正是該團隊的一個作品。
就筆者使用的經驗而言,Matplotlib主要存在兩大缺陷:首先,Matplotlib是一個靜態的繪圖模塊,即我們繪出的圖像是靜態的,就像用看圖軟件打開圖片一樣,沒有網頁繪圖的交互式效果;其次,Matplotlib繪圖結果的分享很不方便,在繪圖結果分享給別人時隻能以圖片的方式分享,別人看到的繪圖結果完全是靜態的,分享體驗很不好。Matplotlib一直以來都是 Python可視化的主力軍,但是確實存在無法克服的缺陷,並且其他的Python繪圖模塊如Ggplot、Bokeh、Pygal等都比較小眾,繪圖功能比較單一,完成不了對Matplotlib的替代。
為了解決 Python在可視化中存在的問題,Plotly應運而生,它是一個基於JavaScript的動態繪圖模塊。Plotly的繪圖效果與我們在網頁上看到的動態交互式繪圖效果是一樣的,其默認的繪圖結果是一個HTML網頁文件,通過瀏覽器就可以查看。我們可以把這個HTML文件分享給其他人,對方看到的效果與我們在本機上看到的效果完全一樣。
Plotly有著自己強大又豐富的繪圖庫,支持各種類型的繪圖方案。Plotly是基於JavaScript的繪圖庫,所以其繪圖結果可以與Web應用無縫集成。總之,Plotly在繪圖模塊上是Matplotlib強有力的競爭對手,Plotly繪圖的種類豐富、效果美觀、易於保存與分享,因而越來越受數據分析人士的喜愛,至少筆者對Plotly的喜愛勝於對Matplotlib的喜愛。