chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

功能強大的開源Python繪圖庫

數(shù)據(jù)分析與開發(fā) ? 來源:數(shù)據(jù)分析1480 ? 作者:數(shù)據(jù)分析1480 ? 2022-11-17 15:05 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

今天給大家分享一篇可視化干貨,介紹的是功能強大的開源Python 繪圖庫Plotly,教你如何用超簡單的(甚至只要一行!)代碼,繪制出更棒的圖表。

我之前一直守著 matplotlib 用的原因,就是為了我學會它復雜的語法,已經(jīng)“沉沒"在里面的幾百個小時的時間成本。這也導致我花費了不知多少個深夜,在 StackOverflow 上搜索如何“格式化日期”或“增加第二個Y軸”。

但我們現(xiàn)在有一個更好的選擇了 —— 比如易于使用、文檔健全、功能強大的開源 Python 繪圖庫Plotly。今天就帶你深入體驗下,了解它如何用超簡單的(甚至只要一行!)代碼,繪制出更棒的圖表。

本文中所有代碼都已經(jīng)在 Github 上開源,所有的圖表都是可交互的,請使用Jupyter notebook查看 。 (Github 源代碼地址:https://github.com/WillKoehrsen/Data-Analysis/blob/master/plotly/Plotly%20Whirlwind%20Introduction.ipynb)

e4e1a25e-662e-11ed-8abf-dac502259ad0.png

(plotly 繪制的范例圖表。圖片來源:plot.ly)

Plotly 概述

plotly 的 Python 軟件包是一個開源的代碼庫,它基于 plot.js,而后者基于 d3.js。我們實際使用的則是一個對 plotly 進行封裝的庫,名叫 cufflinks,它能讓你更方便地使用 plotly 和 Pandas 數(shù)據(jù)表協(xié)同工作。 *注:Plotly 本身是一個擁有多個不同產(chǎn)品和開源工具集的可視化技術公司。Plotly 的 Python 庫是可以免費使用的,在離線模式可以創(chuàng)建數(shù)量不限的圖表,在線模式因為用到了 Plotly 的共享服務,只能生成并分享 25 張圖表。 本文中的所有可視化圖表都是在 Jupyter Notebook 中使用離線模式的 plotly + cufflinks 庫完成的。在使用pip install cufflinks plotly完成安裝后,你可以用下面這樣的代碼在 Jupyter 里完成導入:

e4f63cd2-662e-11ed-8abf-dac502259ad0.png

單變量分布:柱狀圖和箱形圖

單變量分析圖往往是開始數(shù)據(jù)分析時的標準做法,而柱狀圖基本上算是單變量分布分析時必備的圖表之一(雖然它還有一些不足)。 就拿博客文章點贊總數(shù)為例(原始數(shù)據(jù)見 Github:https://github.com/WillKoehrsen/Data-Analysis/tree/master/medium ),做一個簡單的交互式柱狀圖:

e534925c-662e-11ed-8abf-dac502259ad0.png

(代碼中的df是標準的 Pandas dataframe 對象)

e54b3110-662e-11ed-8abf-dac502259ad0.gif

(使用 plotly+cufflinks 創(chuàng)建的交互式柱狀圖)

對于已經(jīng)習慣matplotlib的同學,你們只需要多打一個字母(把.plot改成.iplot),就能獲得看起來更加美觀的交互式圖表!點擊圖片上的元素就能顯示出詳細信息、隨意縮放,還帶有(我們接下來會提到的)高亮篩選某些部分等超棒功能。 如果你想繪制堆疊柱狀圖,也只需要這樣:

ea031e48-662e-11ed-8abf-dac502259ad0.png

ea155ec8-662e-11ed-8abf-dac502259ad0.png

對pandas數(shù)據(jù)表進行簡單的處理,并生成條形圖:

ea28c13e-662e-11ed-8abf-dac502259ad0.png

ea3990e0-662e-11ed-8abf-dac502259ad0.png

就像上面展示的那樣,我們可以將 plotly + cufflinks 和 pandas 的能力整合在一起。比如,我們可以先用.pivot()進行數(shù)據(jù)透視表分析,然后再生成條形圖。 比如統(tǒng)計不同發(fā)表渠道中,每篇文章帶來的新增粉絲數(shù):

ea60c516-662e-11ed-8abf-dac502259ad0.png

ea8523ac-662e-11ed-8abf-dac502259ad0.gif

交互式圖表帶來的好處是,我們可以隨意探索數(shù)據(jù)、拆分子項進行分析。箱型圖能提供大量的信息,但如果你看不到具體數(shù)值,你很可能會錯過其中的一大部分!

散點圖

散點圖是大多數(shù)分析的核心內(nèi)容,它能讓我們看出一個變量隨著時間推移的變化情況,或是兩個(或多個)變量之間的關系變化情況。

時間序列分析

在現(xiàn)實世界中,相當部分的數(shù)據(jù)都帶有時間元素。幸運的是,plotly + cufflinks 天生就帶有支持時間序列可視化分析的功能。 以我在“Towards Data Science”網(wǎng)站上發(fā)表的文章數(shù)據(jù)為例,讓我們以發(fā)布時間為索引構建一個數(shù)據(jù)集,看看文章熱度的變化情況:

eabe9a74-662e-11ed-8abf-dac502259ad0.png

eacd407e-662e-11ed-8abf-dac502259ad0.gif

在上圖中,我們用一行代碼完成了幾件事情:

自動生成美觀的時間序列 X 軸

增加第二條 Y 軸,因為兩個變量的范圍并不一致

把文章標題放在鼠標懸停時顯示的標簽

為了顯示更多數(shù)據(jù),我們可以方便地添加文本注釋:

ef3a8c84-662e-11ed-8abf-dac502259ad0.png

ef4aad58-662e-11ed-8abf-dac502259ad0.png

(帶有文本注釋的散點圖)

下面的代碼中,我們將一個雙變量散點圖按第三個分類變量進行著色:

efb47fbc-662e-11ed-8abf-dac502259ad0.png

efc71e1a-662e-11ed-8abf-dac502259ad0.png

接下來我們要玩點復雜的:對數(shù)坐標軸。我們通過指定 plotly 的布局(layout)參數(shù)來實現(xiàn)這一點(關于不同的布局,請參考官方文檔 https://plot.ly/python/reference/),同時我們把點的尺寸(size參數(shù))和一個數(shù)值變量read_ratio(閱讀比例)綁定,數(shù)字越大,泡泡的尺寸也越大。

efe96f9c-662e-11ed-8abf-dac502259ad0.png

f00e17e8-662e-11ed-8abf-dac502259ad0.png

如果想要更復雜一些(詳見 Github 的源代碼),我們甚至可以在一張圖里塞進 4 個變量?。ㄈ欢⒉煌扑]你們真的這么搞)

f026f560-662e-11ed-8abf-dac502259ad0.png

和前面一樣,我們可以將 pandas 和 plotly+cufflinks 結合起來,實現(xiàn)許多有用的圖表:

f039c294-662e-11ed-8abf-dac502259ad0.png

f056fd46-662e-11ed-8abf-dac502259ad0.png

建議你查看官方文檔,或者源代碼,里面有更多的范例和函數(shù)實例。只需要簡單的一兩行代碼,就可以為你的圖表加上文字注釋,輔助線,最佳擬合線等有用的元素,并且保持原有的各種交互式功能。

高級繪圖功能

接下來,我們要詳細介紹幾種特殊的圖表,平時你可能并不會很經(jīng)常用到它們,但我保證只要你用好了它們,一定能讓人刮目相看。我們要用到 plotly 的figure_factory模塊,只需要一行代碼,就能生成超棒的圖表!

散點圖矩陣

假如我們要探索許多不同變量之間的關系,散點圖矩陣(也被稱為SPLOM)就是個很棒的選擇:

f06e8b0a-662e-11ed-8abf-dac502259ad0.png

f07dfd42-662e-11ed-8abf-dac502259ad0.jpg

即使是這樣復雜的圖形,也是完全可交互的,讓我們能更詳盡地對數(shù)據(jù)進行探索。

關系熱圖

為了體現(xiàn)多個數(shù)值變量間的關系,我們可以計算它們的相關性,然后用帶標注熱度圖的形式進行可視化:

f0a35524-662e-11ed-8abf-dac502259ad0.png

f0c172de-662e-11ed-8abf-dac502259ad0.jpg

自定義主題

除了層出不窮的各種圖表外,Cufflinks 還提供了許多不同的著色主題,方便你輕松切換各種不同的圖表風格。下面兩張圖分別是“太空”主題和“ggplot”主題:

f0f49e48-662e-11ed-8abf-dac502259ad0.png

f105a40e-662e-11ed-8abf-dac502259ad0.png

此外,還有 3D 圖表(曲面和泡泡):

f12e479c-662e-11ed-8abf-dac502259ad0.png

f15b53d6-662e-11ed-8abf-dac502259ad0.png

對有興趣研究的用戶來說,做張餅圖也不是什么難事:

f1dd609c-662e-11ed-8abf-dac502259ad0.png

在 Plotly 圖表工坊(Plotly Chart Studio)里編輯

當你在 Jupyter Notebook 里生成了這些圖表之后,你將會發(fā)現(xiàn)圖表的右下角出現(xiàn)了一個小小的鏈接,寫著“Export to plot.ly(發(fā)布到 plot.ly)”。如果你點擊這個鏈接,你將會跳轉到一個“圖表工坊”(https://plot.ly/create/)。 在這里,你可以在最終展示之前進一步修改和潤色你的圖表??梢蕴砑訕俗ⅲx擇某些元素的顏色,把一切都整理清楚,生成一個超棒的圖表。之后,你還可以將它發(fā)布到網(wǎng)絡上,生成一個供其他人查閱的鏈接。 下面兩張圖是在圖表工坊里制作的:

f1fc216c-662e-11ed-8abf-dac502259ad0.png

f225fe38-662e-11ed-8abf-dac502259ad0.png

講了這么多,看都看累了吧?然而我們還并沒有窮盡這個庫的所有功能。限于篇幅,有些更棒的圖表和范例,只好請大家訪問 plotly 和 cufflinks 的官方文檔去一一查看咯。

f24cd9a4-662e-11ed-8abf-dac502259ad0.jpg

(Plotly 交互式地圖,顯示了美國國內(nèi)的風力發(fā)電場數(shù)據(jù)。來源:plot.ly)

最后……

關于沉沒成本謬誤,最糟糕的一點在于,人們往往只能在放棄之前的努力時,才能意識到自己浪費了多少時間。 在選擇一款繪圖庫的時候,你最需要的幾個功能有:

快速探索數(shù)據(jù)所需的一行代碼圖表

拆分/研究數(shù)據(jù)所需的交互式元素

當需要時可以深入細節(jié)信息的選項

最終展示前能輕易進行定制

從現(xiàn)在看來,要用 Python 語言實現(xiàn)以上功能的最佳選擇非 plotly 莫屬。它讓我們快速生成可視化圖表,交互功能使我們更好地理解信息。 我承認,繪圖絕對是數(shù)據(jù)科學工作中最讓人享受的部分,而 plotly 能讓你更加愉悅地完成這些任務。

f262a888-662e-11ed-8abf-dac502259ad0.png

(用一張圖表顯示一下用 Python 繪圖的愉悅程度隨著時間變化。來源 towardsdatascience.com) 2022年是時候升級你的 Python 繪圖庫了,讓自己在數(shù)據(jù)科學和可視化方面變得更快、更強、更美吧!

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 開源
    +關注

    關注

    3

    文章

    4368

    瀏覽量

    46455
  • 可視化
    +關注

    關注

    1

    文章

    1365

    瀏覽量

    22909
  • python
    +關注

    關注

    58

    文章

    4888

    瀏覽量

    90320

原文標題:功能強大的開源 Python 繪圖庫

文章出處:【微信號:DBDevs,微信公眾號:數(shù)據(jù)分析與開發(fā)】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    PIC24FJ64GB004系列微控制器:功能強大的16位解決方案

    PIC24FJ64GB004系列微控制器:功能強大的16位解決方案 在電子工程師的日常設計工作中,選擇一款合適的微控制器至關重要。Microchip的PIC24FJ64GB004系列微控制器為我們
    的頭像 發(fā)表于 04-08 18:05 ?1098次閱讀

    RZ/G3S Group:一款功能強大的MPU芯片全面解析

    RZ/G3S Group:一款功能強大的MPU芯片全面解析 在如今的電子科技領域,微處理器(MPU)一直都是各類電子設備的核心部件。今天,我們就來深入探討Renesas推出的RZ/G3S Group
    的頭像 發(fā)表于 04-01 11:40 ?225次閱讀

    FTDI FT51A:功能強大的8051兼容核心高級MCU

    FTDI FT51A:功能強大的8051兼容核心高級MCU 在電子設計領域,一款性能卓越、功能豐富的微控制器(MCU)往往能為項目帶來更多的可能性。FTDI的FT51A就是這樣一款值得關注的產(chǎn)品
    的頭像 發(fā)表于 03-28 13:05 ?247次閱讀

    深入解析DS1557:功能強大的非易失性計時RAM

    深入解析DS1557:功能強大的非易失性計時RAM 在硬件設計領域,一款優(yōu)秀的計時RAM對于系統(tǒng)的穩(wěn)定運行和數(shù)據(jù)存儲至關重要。今天,我們就來深入探討Maxim公司的DS1557,這款4Meg、非易失
    的頭像 發(fā)表于 03-24 15:20 ?368次閱讀

    SGM41528:一款功能強大的2A、2 - 電芯電池充電器

    SGM41528:一款功能強大的2A、2 - 電芯電池充電器 在電子設備的電源管理領域,一款性能卓越的電池充電器至關重要。今天,我們就來深入了解一下SGM41528這款I2C控制的2A、2 - 電芯
    的頭像 發(fā)表于 03-23 16:40 ?370次閱讀

    探索LM83:一款功能強大的溫度傳感器

    探索LM83:一款功能強大的溫度傳感器 在電子設備的設計和運行過程中,溫度監(jiān)測至關重要。而一款好的溫度傳感器可以幫助我們精確捕捉溫度變化,預防過熱等問題,保障設備的穩(wěn)定運行。今天,我們就來詳細探討
    的頭像 發(fā)表于 02-26 13:50 ?318次閱讀

    小巧精致,功能強大——MAX8606 Li+線性充電器評測

    小巧精致,功能強大——MAX8606 Li+線性充電器評測 引言 在當今電子設備高度普及的時代,電池充電管理成為了一項關鍵技術。對于單節(jié)Li+電池的充電需求,一款高效、安全且集成度高的充電器至關重要
    的頭像 發(fā)表于 02-25 16:00 ?219次閱讀

    深入解析 ISOM8600:功能強大的光仿真器開關

    深入解析 ISOM8600:功能強大的光仿真器開關 作為一名電子工程師,在日常工作中我們常常會尋找性能卓越、可靠性高且能滿足多樣化需求的電子元件。今天,我要和大家詳細介紹一款備受關注的產(chǎn)品
    的頭像 發(fā)表于 01-20 14:30 ?325次閱讀

    DP83843:一款功能強大的以太網(wǎng)物理層芯片

    DP83843:一款功能強大的以太網(wǎng)物理層芯片 在當今的網(wǎng)絡通信領域,以太網(wǎng)技術扮演著至關重要的角色。而物理層芯片作為以太網(wǎng)通信的基礎,其性能和功能直接影響著整個網(wǎng)絡的穩(wěn)定性和傳輸效率。今天,我們
    的頭像 發(fā)表于 01-04 14:50 ?502次閱讀

    LM8323:一款功能強大的移動I/O伴侶芯片解析

    LM8323:一款功能強大的移動I/O伴侶芯片解析 在電子設備的設計中,一款合適的I/O伴侶芯片能極大地提升設備的性能和功能。今天我們就來深入了解一下德州儀器(TI)的LM8323,這是一款專門為
    的頭像 發(fā)表于 12-24 17:25 ?1076次閱讀

    TriBoard TC3X9:功能強大的評估板深度解析

    TriBoard TC3X9:功能強大的評估板深度解析 在電子設計的領域中,擁有一款功能強大且靈活的評估板對于開發(fā)人員來說至關重要。TriBoard TC3X9就是這樣一款值得深入研究的評估板,它為
    的頭像 發(fā)表于 12-19 11:20 ?945次閱讀

    沒有專利的opencv-python 版本

    費用于商業(yè)產(chǎn)品,僅需保留版權聲明); 包含所有核心功能:圖片讀取/處理、視頻讀寫、繪圖、形態(tài)學操作、邊緣檢測(Canny)、閾值分割、輪廓檢測等,滿足 90%+ 開發(fā)場景; 適配 Python 3.13,安裝
    發(fā)表于 12-13 12:37

    進迭時空 debug upstream | 取之于開源,貢獻于開源

    。Debug相關軟件項目概覽RISC-V調(diào)試所涉及的核心開源軟件主要包括GDB和OpenOCD。GDB(GNUDebugger)是GNU項目下的功能強大的源碼級調(diào)
    的頭像 發(fā)表于 11-17 09:33 ?5715次閱讀
    進迭時空 debug upstream | 取之于<b class='flag-5'>開源</b>,貢獻于<b class='flag-5'>開源</b>

    藍牙云屏:功能強大,性價比之選?

    藍牙云屏:功能強大,性價比之選? 在儀器儀表行業(yè),想要在嚴格控制成本的同時保證設備功能強大,往往是一件兩難的事情。要么為了控制成本犧牲功能,導致產(chǎn)品競爭力不足;要么為了豐富功能增加成本
    的頭像 發(fā)表于 09-25 17:12 ?718次閱讀
    藍牙云屏:<b class='flag-5'>功能強大</b>,性價比之選?

    C++ 與 Python:樹莓派上哪種語言更優(yōu)?

    Python是樹莓派上的首選編程語言,我們的大部分教程都使用它。然而,C++在物聯(lián)網(wǎng)項目中同樣廣受歡迎且功能強大。那么,在樹莓派項目中選擇哪種語言更合適呢?Python因其簡潔性、豐富的庫和資源而被
    的頭像 發(fā)表于 07-24 15:32 ?1120次閱讀
    C++ 與 <b class='flag-5'>Python</b>:樹莓派上哪種語言更優(yōu)?