強烈推薦一款Python可視化神器!強烈必備!

2021-01-08 老實的程式設計師

Plotly Express 入門之路

Plotly Express 是一個新的高級 Python 可視化庫:它是 Plotly.py 的高級封裝,它為複雜的圖表提供了一個簡單的語法。

受 Seaborn 和 ggplot2 的啟發,它專門設計為具有簡潔,一致且易於學習的 API :只需一次導入,您就可以在一個函數調用中創建豐富的交互式繪圖,包括分面繪圖(faceting)、地圖、動畫和趨勢線。 它帶有數據集、顏色面板和主題,就像 Plotly.py 一樣。

Plotly Express 完全免費:憑藉其寬鬆的開源 MIT 許可證,您可以隨意使用它(是的,甚至在商業產品中!)。

最重要的是,Plotly Express 與 Plotly 生態系統的其他部分完全兼容:在您的 Dash 應用程式中使用它,使用 Orca 將您的數據導出為幾乎任何文件格式,或使用JupyterLab 圖表編輯器在 GUI 中編輯它們!

用 pip install plotly_express 命令可以安裝 Plotly Express。

使用 Plotly Express 輕鬆地進行數據可視化

一旦導入Plotly Express(通常是 px ),大多數繪圖只需要一個函數調用,接受一個整潔的Pandas dataframe,並簡單描述你想要製作的圖。 如果你想要一個基本的散點圖,它只是 px.scatter(data,x =「column_name」,y =「column_name」)。

以下是內置的 Gapminder 數據集的示例,顯示2007年按國家/地區的人均預期壽命和人均GDP 之間的趨勢:

如果你想通過大陸區分它們,你可以使用 color 參數為你的點著色,由 px 負責設置默認顏色,設置圖例等:

這裡的每一點都是一個國家,所以也許我們想要按國家人口來衡量這些點...... 沒問題:這裡也有一個參數來設置,它被稱為 size:

如果你好奇哪個國家對應哪個點? 可以添加一個 hover_name ,您可以輕鬆識別任何一點:只需將滑鼠放在您感興趣的點上即可! 事實上,即使沒有 hover_name ,整個圖表也是互動的:

也可以通過 facet_col =」continent「 來輕鬆劃分各大洲,就像著色點一樣容易,並且讓我們使用 x軸 對數(log_x)以便在我們在圖表中看的更清晰:

也許你不僅僅對 2007年 感興趣,而且你想看看這張圖表是如何隨著時間的推移而演變的。 可以通過設置 animation_frame=「year」 (以及 animation_group =「country」 來標識哪些圓與控制條中的年份匹配)來設置動畫。

在這個最終版本中,讓我們在這裡調整一些顯示,因為像「gdpPercap」 這樣的文本有點難看,即使它是我們的數據框列的名稱。 我們可以提供更漂亮的「標籤」 (labels),可以在整個圖表、圖例、標題軸和懸停(hovers)中應用。 我們還可以手動設置邊界,以便動畫在整個過程中看起來更棒:

因為這是地理數據,我們也可以將其表示為動畫地圖,因此這清楚地表明 Plotly Express 不僅僅可以繪製散點圖(不過這個數據集缺少前蘇聯的數據)。

事實上,Plotly Express 支持三維散點圖、三維線形圖、極坐標和地圖上三元坐標以及二維坐標。 條形圖(Bar)有二維笛卡爾和極坐標風格。

進行可視化時,您可以使用單變量設置中的直方圖(histograms)和箱形圖(box)或小提琴圖(violin plots),或雙變量分布的密度等高線圖(density contours)。 大多數二維笛卡爾圖接受連續或分類數據,並自動處理日期/時間數據。 可以查看我們的圖庫 (ref-3) 來了解每個圖表的例子。

可視化分布

數據探索的主要部分是理解數據集中值的分布,以及這些分布如何相互關聯。 Plotly Express 有許多功能來處理這些任務。

使用直方圖(histograms),箱形圖(box)或小提琴圖(violin plots)可視化單變量分布:

直方圖:

箱形圖:

小提琴圖:

還可以創建聯合分布圖(marginal rugs),使用直方圖,箱形圖(box)或小提琴來顯示雙變量分布,也可以添加趨勢線。 Plotly Express 甚至可以幫助你在懸停框中添加線條公式和R值! 它使用 statsmodels 進行普通最小二乘(OLS)回歸或局部加權散點圖平滑(LOWESS)。

顏色面板和序列

在上面的一些圖中你會注意到一些不錯的色標。 在 Plotly Express 中, px.colors 模塊包含許多有用的色標和序列:定性的、序列型的、離散的、循環的以及所有您喜歡的開源包:ColorBrewer、cmocean 和 Carto 。 我們還提供了一些功能來製作可瀏覽的樣本供您欣賞(ref-3):

定性的顏色序列:

眾多內置順序色標中的一部分:

用一行 Python 代碼進行交互式多維可視化

我們特別為我們的交互式多維圖表感到自豪,例如散點圖矩陣(SPLOMS)、平行坐標和我們稱之為並行類別的並行集。 通過這些,您可以在單個圖中可視化整個數據集以進行數據探索。 在你的Jupyter 筆記本中查看這些單行及其啟用的交互:

散點圖矩陣(SPLOM)允許您可視化多個連結的散點圖:數據集中的每個變量與其他變量的關係。 數據集中的每一行都顯示為每個圖中的一個點。 你可以進行縮放、平移或選擇操作,你會發現所有圖都連結在一起!

平行坐標允許您同時顯示3個以上的連續變量。 dataframe 中的每一行都是一行。 您可以拖動尺寸以重新排序它們並選擇值範圍之間的交叉點。

並行類別是並行坐標的分類模擬:使用它們可視化數據集中多組類別之間的關係。

Plotly 生態系統的一部分

Plotly Express 之於 Plotly.py 類似 Seaborn 之於 matplotlib:Plotly Express 是一個高級封裝庫,允許您快速創建圖表,然後使用底層 API 和生態系統的強大功能進行修改。 對於Plotly 生態系統,這意味著一旦您使用 Plotly Express 創建了一個圖形,您就可以使用Themes,使用 FigureWidgets 進行命令性編輯,使用 Orca 將其導出為幾乎任何文件格式,或者在我們的 GUI JupyterLab 圖表編輯器中編輯它 。

主題(Themes)允許您控制圖形範圍的設置,如邊距、字體、背景顏色、刻度定位等。 您可以使用模板參數應用任何命名的主題或主題對象:

有三個內置的 Plotly 主題可以使用, 分別是 plotly, plotlywhite 和 plotlydark。

px 輸出繼承自 Plotly.py 的 Figure 類 ExpressFigure 的對象,這意味著你可以使用任何 Figure 的訪問器和方法來改變 px生成的繪圖。 例如,您可以將 .update() 調用連結到 px 調用以更改圖例設置並添加注釋。 .update() 現在返回修改後的數字,所以你仍然可以在一個很長的 Python 語句中執行此操作:

在這裡,在使用 Plotly Express 生成原始圖形之後,我們使用 Plotly.py 的 API 來更改一些圖例設置並添加注釋。

能夠與 Dash 完美匹配

Dash 是 Plotly 的開源框架,用於構建具有 Plotly.py 圖表的分析應用程式和儀錶板。Plotly Express 產生的對象與 Dash 100%兼容,只需將它們直接傳遞到 dash_core_components.Graph,如下所示: dcc.Graph(figure = px.scatter(...))。 這是一個非常簡單的 50行 Dash 應用程式的示例,它使用 px 生成其中的圖表:

這個 50 行的 Dash 應用程式使用 Plotly Express 生成用於瀏覽數據集的 UI 。

設計理念:為什麼我們創建 Plotly Express ?

可視化數據有很多原因:有時您想要提供一些想法或結果,並且您希望對圖表的每個方面施加很多控制,有時您希望快速查看兩個變量之間的關係。 這是交互與探索的範疇。

Plotly.py 已經發展成為一個非常強大的可視化交互工具:它可以讓你控制圖形的幾乎每個方面,從圖例的位置到刻度的長度。 不幸的是,這種控制的代價是冗長的:有時可能需要多行 Python 代碼才能用 Plotly.py 生成圖表。

我們使用 Plotly Express 的主要目標是使 Plotly.py 更容易用於探索和快速迭代。

我們想要構建一個庫,它做出了不同的權衡:在可視化過程的早期犧牲一些控制措施來換取一個不那麼詳細的 API,允許你在一行 Python 代碼中製作各種各樣的圖表。 然而,正如我們上面所示,該控制項並沒有消失:你仍然可以使用底層的 Plotly.py 的 API 來調整和優化用 Plotly Express 製作的圖表。

支持這種簡潔 API 的主要設計決策之一是所有 Plotly Express 的函數都接受「整潔」的 dataframe 作為輸入。 每個 Plotly Express 函數都體現了dataframe 中行與單個或分組標記的清晰映射,並具有圖形啟發的語法籤名,可讓您直接映射這些標記的變量,如 x 或 y 位置、顏色、大小、 facet-column 甚至是 動畫幀到數據框(dataframe)中的列。 當您鍵入 px.scatter(data,x ='col1',y='col2') 時,Plotly Express 會為數據框中的每一行創建一個小符號標記 - 這就是 px.scatter 的作用 - 並將 「col1」 映射到 x 位置(類似於 y 位置)。 這種方法的強大之處在於它以相同的方式處理所有可視化變量:您可以將數據框列映射到顏色,然後通過更改參數來改變您的想法並將其映射到大小或進行行分面(facet-row)。

接受整個整潔的 dataframe 的列名作為輸入(而不是原始的 numpy 向量)也允許 px 為你節省大量的時間,因為它知道列的名稱,它可以生成所有的 Plotly.py 配置用於標記圖例、軸、懸停框、構面甚至動畫幀。 但是,如上所述,如果你的 dataframe 的列被笨拙地命名,你可以告訴 px 用每個函數的 labels 參數替換更好的。

僅接受整潔輸入所帶來的最終優勢是它更直接地支持快速迭代:您整理一次數據集,從那裡可以使用 px 創建數十種不同類型的圖表,包括在 SPLOM 中可視化多個維度 、使用平行坐標、在地圖上繪製,在二維、三維極坐標或三維坐標中使用等,所有這些都不需要重塑您的數據!

我們沒有以權宜之計的名義犧牲控制的所有方面,我們只關注您想要在數據可視化過程的探索階段發揮的控制類型。 您可以對大多數函數使用 category_orders 參數來告訴 px 您的分類數據「好」、「更好」、「最佳」 等具有重要的非字母順序,並且它將用於分類軸、分面繪製 和圖例的排序。 您可以使用 color_discrete_map (以及其他 * _map 參數)將特定顏色固定到特定數據值(如果這對您的示例有意義)。 當然,你可以在任何地方重構 color_discrete_sequence 或 color_continuous_scale (和其他 *_sequence 參數)。

在 API 級別,我們在 px 中投入了大量的工作,以確保所有參數都被命名,以便在鍵入時最大限度地發現:所有 scatter -類似的函數都以 scatter 開頭(例如 scatter_polar, scatter_ternary)所以你可以通過自動補全來發現它們。 我們選擇拆分這些不同的散點圖函數,因此每個散點圖函數都會接受一組定製的關鍵字參數,特別是它們的坐標系。 也就是說,共享坐標系的函數集(例如 scatter, line & bar,或 scatter_polar, line_polar 和 bar_polar )也有相同的參數,以最大限度地方便學習。 我們還花了很多精力來提出簡短而富有表現力的名稱,這些名稱很好地映射到底層的 Plotly.py 屬性,以便於在工作流程中稍後調整到交互的圖表中。

最後,Plotly Express 作為一個新的 Python 可視化庫,在 Plotly 生態系統下,將會迅速發展。所以不要猶豫,立即開始使用 Plotly Express 吧!

相關焦點

  • Python數據可視化之高速繪圖神器PyQtGraph庫,強烈建議收藏
    01為什麼使用PyQtGraph庫我們知道,在Python中,已經有了很多可供選擇的數據可視化庫。但是這些繪圖庫也存在著不足,即在圖形繪製速度上有所欠缺,特別是對於科研算法方面的數據可視化,很多情況需要實時繪圖,要求能夠提供儘可能快的繪製刷新速度,那這些庫顯的有些力不從心了。而我們下面要介紹的繪圖庫-PyQtGraph庫,則在繪圖速度方面表現尤其突出,在不失繪圖美觀、功能強大的前提下,在繪圖速度方面作了極大的優化,特別適合於實時數據採集的動態圖形繪製場合。
  • 強烈推薦-製造業必備英語-模具
    強烈推薦-製造業必備英語-模具注塑模具injection mold  衝壓模具Stamping tool  模架mold base  定模座板Fixed clamp plate  A板A plate  B板B
  • 強烈推薦Mac上的6款功能擴展軟體,簡單好用效率高!
    小編也給大家介紹過許多的蘋果電腦必備軟體,還有許多實用的小工具,今天macdown小編給大家推薦幾款Mac上的功能擴展軟體,簡單好用而且可提高效率!感興趣的朋友千萬不要錯過!首先給大家介紹一款分屏小能手:Magnet pro這款專業的窗口管理工具當您每次將內容從一個應用移動到另一應用時,當您需要並排比較數據時,或是以其他方式進行多任務處理時,它都可以幫您妥善解決!
  • 3米6魚竿推薦什麼牌子好?(強烈推薦)
    3米6魚竿推薦什麼牌子好?今天華子就在這裡給釣友推薦幾款3米6的魚竿吧,個人覺得這幾款都比較不錯,而且性價比蠻高的,釣友們可以看一下。一、漢鼎巨鯉三代(價格在160元左右)這是一款比較適合野釣的魚竿,二八調硬挺,竿稍柔軟。 演繹著靈巧調性,偶遇大魚控魚回魚輕鬆愜意。
  • 喜歡聽音樂的有福了,今天給大家推薦一款必備神器
    listen1是款功能十分強大的音樂播放器,listen1能夠幫助你搜索和播放各網易雲音樂,蝦米,QQ音樂,酷狗音樂等等大音樂平臺的歌曲,讓你擁有超級大的音樂庫,操作簡單,界面舒適乾淨,功能都非常的實用,數據備份、快速搜索功能、原始連結功能等等一系列實用功能,簡直就是喜歡音樂的人必備軟體。
  • 令人讚嘆的8個Python新手工具!
    讀一讀scikit-learn的用戶指南及文檔,你也會對算法的使用有更全面的了解。3、TheanoTheano是一個較老牌和穩定的機器學習python庫之一,雖然目前使用的人數有所下降。但它畢竟是一個祖師級的存在,一定有它的優點所在。
  • Python可視化工具推薦:圖片交互性行極佳的Plotly
    1、 簡單介紹一般大家在學習python機器學習的時候,用的最多的可視化的包就是matplot和seaborn, 這2個可視化的優點在於門檻低,代碼容易理解,並且容易上手。在市場上,還有一種很火的軟體叫echart,那為什麼我們不介紹echart而介紹python plotly呢,那是因為echart是用java來寫的,並且寫法比較複雜,需要重新學習java語言才能畫出類似的這種可交互的圖出來。
  • 新發現一款神器,全網VIP音樂可以免費聽,支持安卓和蘋果...
    簡單介紹 波點音樂APP是一款手機移動端的音樂播放平臺,現在各種各樣的音樂在生活中受到了很多用戶們的關注,因為在平時的生活中來聽聽音樂也是非常常見的,聽歌還可以舒緩我們的情緒,
  • 絕對不吃灰的稀罕居家神器,個個新奇獨特,第六款做飯都不成問題
    家用窗戶凹槽塵土清潔刷家用窗戶凹槽塵土清潔刷,非凹槽這個地方莫屬,有了這款,如果說最難清理的地方,你就可以輕鬆刷洗,快捷而方便。家用窗戶凹槽塵土清潔刷家用窗戶凹槽塵土清潔刷,刷子被刷乾淨了,小鏟子上有一個水桶。
  • (強烈推薦)
    因此本次就繼續給大家介紹一款釣草魚的商品餌料配方,希望大家能夠學會舉一反三,隨便拿來一個配方可能有用也可能沒有用。只有自己知道為什麼這樣配你才能自己去思考以後要怎樣配餌才能更加適合自己的實際情況。(大師推薦)
  • 機構強烈推薦8隻個股-更新中
    該機構預計公司2020-2021年EPS分別為1.34、1.74元,對應PE分別為24.1倍、18.5倍,維持「強烈推薦-A」評級。 5、風險提示:地產投資大幅下滑、產能投放不及預期、原料及燃料價格大幅上漲  該股最近6個月獲得機構32次買入評級、11次增持評級、5次推薦評級、5次強烈推薦評級、3次審慎增持評級、1次優於大市評級、1次強烈推薦-A評級、1次跑贏行業評級。
  • (強烈推薦)
    公紅蟲若干,每5――7條捆一捆,母紅蟲最少約100克(一天垂釣用量)。具體做法是:在拉餌盤上鋪一層紅蟲,用鴨蛋大小的拉餌在上面壓幾下,使拉餌底部沾滿紅蟲,把鉤子放好以後,用拉餌壓住腦線向側面一拉,拉餌盤上的紅蟲,和拉餌底部的紅蟲就會被鉤子鉤出。
  • 李佳琦強烈推薦的眼霜火了,網友:從此丟掉了蘭蔻
    李佳琦強烈推薦的眼霜火了,網友:從此丟掉了蘭蔻經常熬夜的小夥伴眼部肌膚可要注視起來,都說要老先老眼。當眼睛有黑眼圈和細紋以後,整個人的狀態看起來就不再有少女感了。前段時間跟風入手了李佳琦曬了一款snp眼霜,沒想到去黑眼圈和細紋效果超級好。簡直是熬夜黨的福音!這款眼霜是當下韓國非常流行的眼霜,價格很平價,學生黨很上班族小夥伴的首選。
  • 使用biopython可視化染色體和基因元件
    基因組結構元件的可視化有多種方式,比如IGV等基因組瀏覽器中以track為單位的展示形式,亦或以circos為代表的圈圖形式,比如在細胞器基因組組裝中,基因元件常用圈圖形式展示,示例如下
  • 使用蚯蚓釣魚的3大技巧(強烈推薦)
    一、不同的季節一年四季不同,其水溫各異。魚的攝食方式通常隨著水溫的不同而改變。春季時,魚剛從寒冷的冬天脫胎出來,還帶有幾分冬天拙笨的習性。因此,垂釣時除了宜用小鉤、細線外,選用合適的小號蚯蚓,也是不容忽視的。
  • (強烈推薦)
    所以我的建議是:如果冬季拉餌作釣鯪魚的話,剛開始可以先打2-3竿散炮下去,然後再每拋10竿左右再打一竿散炮下去,這樣的話可以起到比較好的誘魚和聚魚效果。各位釣友可以去嘗試一下。好吧,關於釣鯪魚用什麼餌料好這個話題就先聊到這裡吧,如果釣友們有更好的餌料配方,也可以分享出來給大家學習一下的。
  • 見蟲:一款拍照識別APP,遇見昆蟲必備神器
    一款拍照識別APP,遇見昆蟲必備神器。而這樣一款APP,只要你拿出手機掃一掃拍照,就可以給你帶來昆蟲小百科,讓你隨時隨地長知識。    這是一款由託普雲農研發的昆蟲識別APP,叫做『見蟲』,最大的功能就是識別昆蟲。
  • 推薦5款瀏覽器的PR和Alexa查詢插件
    1:火狐瀏覽器必備SEO插件——SearchStatus這是我強烈再強烈推薦的一款SEO插件,SearchStatus為我們提供了方便的SEO查詢工具,換種思維來講,它也為我們提供了一些SEO工作的重點所在。
  • (強烈推薦)
    2、傳統釣的單鉛線組調漂就是2個套路,一是鉛墜略大於浮漂浮力,反正只要浮漂露出來鉛墜就到底了。或者更靈一些,採用無鉤調平水的方法。為了提升靈敏度,需要用小浮漂,這樣配上小的鉛墜,靈敏度才有保障。不過這種狀態的調漂是需要反向驗證的,可以釣目比調目只多一丟丟,比如無子線調1目釣1.5目。或者調2目,找底釣3目,在一點點下拉浮漂座,反向找到2目,這樣鉛墜就是立著的,上拉鉛墜,八字環到底就實現了。以上三個關於紅蟲調漂的套路,都是個人釣魚總結的經驗,希望對各位釣友有幫助。
  • 超硬核的 Python 數據可視化教程!
    matplotlibpython中最基本的作圖庫就是matplotlib,是一個最基礎的Python可視化庫,一般都是從matplotlib上手Python數據可視化,然後開始做縱向與橫向拓展。Seaborn是一個基於matplotlib的高級可視化效果庫,針對的點主要是數據挖掘和機器學習中的變量特徵選取,seaborn可以用短小的代碼去繪製描述更多維度數據的可視化效果圖其他庫還包括Bokeh(是一個用於做瀏覽器端交互可視化的庫,實現分析師與數據的交互);Mapbox(處理地理數據引擎更強的可視化工具庫)等等本篇文章主要使用