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

第1章 快速開始

1.1 Plotly簡介

Pandas(潘達思)數據分析軟件和Plotly互動式繪圖模塊可以稱為Python數據分析和Python量化分析兩大重量級模塊庫。

事實上,這兩者的影響力早已超越Python語言領域。

●Pandas目前已經被業界公認是大數據工程一線最好的解決方案。

●Plotly被稱為史上最好的繪圖工具之一,是GitHub開源網站最“火”的兩大新項目之一(另外一個是Netflix的Spinnaker云計算項目)。

為了更好地展示金融數據的復雜性,下面首先介紹Plotly繪圖模塊。如圖1-1所示是Plotly網站截圖,網址是https://plot.ly

圖1-1 Plotly網站截圖

Python量化的關鍵是金融數據可視化,無論是傳統的K線圖,還是現在的互動策略分析,都需要大量的可視化圖表。具體到編程代碼,就是各種Python繪圖模塊庫,傳統Python繪圖模塊庫有Matplotlib、Ggplot、Seaborn、Bokeh等。

Plotly繪圖底層使用的是plotly.js, plotly.js基于D3.js、stack.gl(WebGL組件庫,由Plotly團隊的Mikola Lysenko帶領開發)和SVG,用JavaScript在網頁上實現類似MATLAB和Python Matplotlib的圖形展示功能,支持數十種圖形,包括2D和3D圖形,交互流暢,可以滿足一般科學計算的需要。該項目成功后,開始向其他語言移植,目前已經有Python、MATLAB、R語言、Jupyter等多種版本的API接口。

Plotly項目的創始人是Alex Johnson,是哈佛大學物理博士,曾經做過燃料電池。該項目的參與者中有一位華裔女生,叫Baobao Zhang(張寶寶),是耶魯大學政治學博士。Fernando Perez(IPython Notebook創始人)是該項目的顧問。

Plotly項目團隊在2013年就已經拿到數百萬美元的投資,并在加拿大蒙特利爾注冊了公司,公司名稱是科學數據云服務公司,號稱是“首個科學數據平臺”,提供線上和聯機服務,方便用戶使用分享、評論等功能,其投資商有MHS資本、西門子風險資本、Rho Ventures、Real Ventures和硅谷銀行等。

Plotly公司有很多大牌客戶,如西門子、Google、美國國家航天局(NASA)、美國空軍、華盛頓郵報、美國國家衛生研究院等。

Plotly公司的聯合創始人Jack Parmer這樣說過:對于開發者來說,繪制出漂亮的、交互式的圖表并將之分享是一件很容事的事,但是對于一般的用戶則很困難。Plotly改變了這種局面,借助互聯網的媒介、利用世界級的繪圖分析工具,每個人都可以參與其中。

Hacker News(極客新聞)網站曾經專門討論過各種圖形模塊庫,如Matplotlib、MPLD3、Bokeh、Highcharts、Flotcharts、MetricsGraphics、Vega、Chartjs、FusionCharts和JSXGraph。相比而言,Plotly功能齊全,性能顯著超過其他同類產品。

Plotly原本是收費的商業軟件,幸運的是,2016年6月,Plotly繪圖模塊庫提供了免費的社區版本,并新增了Python等多種編程語言的接口,以及離線模式支持,這對于廣大中國用戶而言,獲得了現實的技術支持。

Python繪圖模塊庫數不勝數,其中經典的有數十個。目前,Plotly作為新一代互動型量化繪圖庫,基本上可以說一統天下。如圖1-2所示是Plotly繪圖模塊庫部分內置的圖形類型。

圖1-2 Plotly繪圖模塊庫部分內置的圖形類型

筆者在編寫本書時,特別針對多種Python繪圖模塊庫進行了測試,測試結果表明,Plotly繪圖模塊庫的確是新一代Python繪圖模塊的王者之選,也是各種Web平臺的優先選擇繪圖模塊。

以筆者個人的測試感覺而言,Plotly繪圖模塊庫既有Matplotlib繪圖模塊庫的強大與靈活,又有Seaborn統計繪圖模塊庫的現代配色組合與優雅報表形態。

Plotly繪圖模塊庫可直接生成PNG等圖像文件,與Bokeh繪圖模塊庫和各種基于Web的JavaScript圖表模塊庫類似,生成的是一個內置JavaScript腳本的HTML網頁文件,雖然文件比Bokeh繪圖模塊庫生成的文件略大,但在互動性方面,Plotly繪圖模塊庫強大得多。

在3D圖表方面,雖然筆者沒有實際測試,但基于Plotly網站的案例可以看出,相對傳統Python 3D圖表模塊庫,無論在圖表種類格式,還是色彩組合方面,Plotly繪圖模塊庫都顯得更加靈活和強大。

圖1-3所示是Plotly繪圖模塊庫繪制的K線圖,支持互動功能,讀者可以參考Top極寬量化社區的演示網頁(http://www.ziwang.com/zwdemo.htm)。

圖1-3 Plotly繪圖模塊庫繪制的K線圖

請注意,案例中沒有使用任何圖片,是純JavaScript腳本函數,所有的圖形、數據和互動都是通過JavaScript函數完成的,這些JavaScript函數全部是通過Python自動生成的。

圖1-3雖然是靜止的,但在瀏覽器中,其實是純JavaScript腳本的函數圖形,支持各種互動功能,讀者可以好好體會一下,并且看看網頁源碼。

Plotly原本是基于JavaScript的數據圖表分析繪制模塊庫,在編程的靈活性和圖表的豐富性方面非常強大,優點數不勝數。

●Plotly本身是一款獨立的Web版數據可視化工具,界面友好,提供強大的互動性操作。

●基于現代的配色組合和圖表形式,相比Matplotlib、R語言的圖表,更加現代和絢麗。

●具有簡單且強大的3D圖表繪制功能,支持多種格式。

●對圖形參數的修改十分簡單、直觀,便于初學者使用。

●有Python、R、MATLAB、Jupyter、Excel等多種版本的接口。

●與Pandas(潘達思)數據分析軟件無縫集成,并提供了專門的Plotly繪圖模塊庫,設計的圖表非常吸引人,而且具有高度互動性,這得益于其完善的文檔和簡單的Python API,用戶入門也很容易,

目前,Plotly繪圖模塊庫支持的圖表格式如下。

●基本圖表:20種。

●統計和海運方式圖:12種。

●科學圖表:21種。

●財務圖表:2種。

●地圖:8種。

●3D圖表:19種。

●報告生成:4種。

●連接數據庫:7種。

●擬合工具:3種。

●流動圖表:4種。

隨著Plotly繪圖模塊庫軟件的升級與更新,未來會增加更多的圖表格式。

Plotly底層使用的是plotly.js,支持Python、R、MATLAB、JavaScript這四種語言的擴展,由于Python正處于數據分析領域的領先地位,并且其重要性呈日漸上升之勢,所以本書介紹Plotly時以Python語言(Python 3)為主,同時也會給出Plotly在其他語言中的一些應用。

Plotly發展很快,其應用的領域也非常廣泛,不但應用在傳統意義上的數據分析與處理上,而且在網頁開發、程序GUI、機器學習等多個方面也有重要的應用。由于這個原因,本書涉及的內容很廣,除Plotly基礎知識外不會做太多深入的介紹,僅進行入門介紹,讀者可以結合基礎知識部分進行更深入的研究,這對于絕大部分讀者來說并不是什么難事。

對于本書前半部分的基礎知識內容,并不需要讀者對Python有太多的了解,沒有學過Python的讀者只需要花費兩個小時了解Python的基礎語法就可以了。本書后半部分的內容,讀者可以按照自己的實際需求閱讀相關的章節,然后稍微修改一下就可以進行實戰,通過這種方式快速掌握這些技能。

主站蜘蛛池模板: 明光市| 灵寿县| 泸溪县| 平顶山市| 常熟市| 固原市| 民县| 宁武县| 吉首市| 兴和县| 龙川县| 息烽县| 滨海县| 丹巴县| 迁安市| 朝阳市| 宜城市| 丽水市| 连州市| 治县。| 马边| 呼和浩特市| 罗甸县| 湟中县| 南开区| 门源| 岫岩| 凉山| 娄烦县| 西贡区| 富平县| 梧州市| 栾城县| 彭州市| 宜兴市| 托克逊县| 理塘县| 邵阳县| 山阴县| 嘉祥县| 石城县|