如何用pandas更快地進行數據可視化?

2020-12-23 CDA數據分析師

作者:劉早起

來源:早起Python(公眾號)

如果你經常使用Python進行數據分析,那麼對於pandas一定不會陌生,但是Pandas除了在數據處理上大放異彩,隨著版本的不斷更新,Pandas的繪圖功能在某些情況下甚至要比matplotlib更加適用,本文就將介紹如何用Pandas更快的進行數據可視化!

基本使用,學會製作套路

首先我們使用pandas隨機生成示例數據

import pandas as pddf= pd.DataFrame(np.random.rand(8, 4), columns=['A','B','C','D'])

現在只要一行代碼,即可完成柱狀圖的繪製df.plot.bar()

同樣是這個圖,如果使用Matplotlib製作的話

import matplotlib.pyplot as pltx = np.array(df.index.tolist())y1 = df.A.tolist()y2 = df.B.tolist()y3 = df.C.tolist()y4 = df.D.tolist()y5 = df.E.tolist()total_width, n = 0.8, 5width = total_width / nx = x - (total_width - width) / 2plt.bar(x, y1, width=width, label='A')plt.bar(x + width, y2, width=width, label='B')plt.bar(x + 2*width, y3, width=width, label='C')plt.bar(x + 3*width, y4, width=width, label='D')plt.bar(x + 4*width, y5, width=width, label='E')plt.legend()plt.show()

可以看到,雖然結果差不多,不過代碼量瞬間就上去了,如果你是Matplotlib高手可能會用更簡潔的代碼製作,但一定沒有pandas一行代碼來的方便!

更多圖表,一覽Pandas強大

下面我們繼續看看,一行pandas代碼能做出哪些常用的圖!

堆疊柱狀圖,添加一個參數即可df.plot.barh(stacked=True)

堆疊面積圖df.plot.area(stacked=True,alpha = 0.9)

密度估計圖df.plot.kde()

直方圖的話,我們需要換一組數據

df = pd.DataFrame({'a': np.random.randn(1000) + 1, 'b': np.random.randn(1000), 'c': np.random.randn(1000) - 1}, columns=['a', 'b', 'c'])

下面,兩行代碼就能製作堆疊/不堆疊的直方圖

df.plot.hist(stacked=True, bins=20)df.plot.hist(alpha=0.5)

當然包括什麼箱線圖、散點圖等常用圖形,都可以通過一行代碼輕鬆搞定

df.plot.box()df['value'].plot()df.plot.scatter()data.plot.hexbin(x='A',y='B')

製作子圖可以嗎?只需要設置subplots=True就行了,子圖位置、大小調整方式和Matplotlib設置一樣!

data.plot(subplots=True,layout=(3, 2), figsize=(15, 8));

更多的圖表,本文就不再一一展示,從官方文檔中可以看到(我的版本是0.23.4),Pandas一共支持14種常見圖表的直接繪製,感興趣的讀者可以進一步閱讀官方文檔!

其實對圖片敏感的讀者可以發現,這不就是基於Matplotlib做出來的嗎?所以它支持像調整Matplotlib圖表一樣,在作圖時修改一些參數來控制圖片的大小、圖例、顏色、位置等因素。

修改主題,解鎖酷炫樣式

最後,如果你覺得默認生成的圖表不夠好看(我是這麼覺得),而它又是基於Matoplotlib製作的,所以我們可以使用同樣套著Matplotlib殼的Seaborn調色板,從而調整圖片主題。

還是上面的數據,下面讓我們換個主題重新繪製

import seaborn as snssns.set_palette("pastel", 8)

import seaborn as snssns.set_palette("Blues_r", 8)

import seaborn as snssns.set_palette("magma", 8)

上面是我常用的幾種配色,更多的顏色搭配你可以在seaborn相關文檔中找到並使用!

以上就是關於如何在使用Python更快速的對數據進行可視化,我們可以發現,在很多情況下,使用Pandas直接進行繪圖會顯得更加高效便捷

但本文的目的並不是讓你徹底放棄Matplotlib,在使用pandas繪圖時很多參數設置都需要參考Matplotlib,所以我們應該在點亮這項技能後,能根數據和場景的不同,選擇一個最合適的工具來完成可視化

相關焦點

  • 想用Python做數據可視化?先邁過這個「坎」
    用過python的人都會面臨一個問題,尤其是初學者:我應該選哪個來實現數據可視化? 以下就是將要用來創建繪製數據的示例: ·Pandas ·Seaborn ·Ggplot 在示例中,我將使用pandas進行數據處理並使用它來完成可視化的效果。
  • 教你用Pandas和Plotly進行數據可視化
    數據太多難道不會讓人感到不知所措嗎?講真的,數據可視化了解一下。數據可視化是將原始數據轉換成可視化的圖形和圖表,從而更易於理解,它的主要目的是更快地進行研究和數據分析,並有效傳達趨勢和模式。相較於冗長的純文本,人腦能夠更好地理解具有視覺吸引力的數據。
  • 6種數據格式對比,用Jupyter+pandas高效數據分析
    編譯:劉早起(有刪改)來源:towardsdatascience、GitHub等在使用python進行數據分析時,Jupyter Notebook是一個非常強力的工具,在數據集不是很大的情況下,我們可以使用pandas輕鬆對txt或csv等純文本格式數據進行讀寫
  • 不知道數據如何進行拆分?python數據拆分3步法,靈活易用
    python的三方庫pandas有一些能根據指定面元或樣本分位數將數據拆分成多塊的工具(比如cut或qcut)。將這些函數跟groupby結合起來,就能非常輕鬆地實現對數據集的桶(bucket)或分位數(quantile)分析了。
  • Python和VizViewer進行自動駕駛數據集可視化
    簡而言之,VizViewer是一種有用的編碼工具擴展,可用於數據探索和洞察具有不同類型內容的密集數據集。在下一節中,我們將使用VizViewer探索L5預測數據集的特徵,以更好地理解數據,構建改進的訓練集,並利用它調試和評估模型。
  • 超硬核的 Python 數據可視化教程!
    Python實現可視化的三個步驟:確定問題,選擇圖形 轉換數據,應用函數 參數設置,一目了然 1、首先,要知道我們用哪些庫來畫圖?matplotlibpython中最基本的作圖庫就是matplotlib,是一個最基礎的Python可視化庫,一般都是從matplotlib上手Python數據可視化,然後開始做縱向與橫向拓展。
  • 【數據分析】pandas增刪改查!sql2pandas方法手冊
    數據分析Author:louwillMachine Learning Lab     作為一名數據分析師or算法工程師,利用SQL熟練的取數是一項必備的基礎能力。除了SQL以外,Python的pandas也為我們提供了SQL的大多數功能。筆者對SQL和pandas相關數據操作的對照功能進行了整理。可以說是非常實用了。
  • Python數據分析:pandas讀取和寫入數據
    我的公眾號是關於自己在數據分析/挖掘學習過程中的一些技術和總結分享,文章會持續更新......繼續深入學習pandas相關操作,數據讀取寫入、分組、合併,轉換等等。前面一篇文章裡已經寫了關於描述性統計以及常用的基本操作。接下來的一段時間裡,我將陸續地去掌握並輸出。這篇文章是關於數據讀取與寫入的知識點。
  • python時間序列分析之_用pandas中的rolling函數計算時間窗口數據
    簡介由於系統編輯器限制,代碼行用無序列表表示。上篇文章中,我們講解了如何對時間數據進行重採樣及重採樣中降採樣和升採樣的概覽和使用方法,通過重採樣我們可以得到任何想要頻率的數據,但是這些數據也是一個時點的數據,那麼就存在這樣一個問題:時點的數據波動較大,某一點的數據不能很好的表現它本身的特性,於是我們就想,能否用一個區間的的數據去表現呢,這樣數據的準確性是不是更好一些呢?
  • 這10 個 Python 可視化工具,你都用過?
    由於 matplotlib 是第一個 Python 可視化程序庫,有許多別的程序庫都是建立在它的基礎上或者直接調用它。 比如pandas和Seaborn就是matplotlib的外包,它們讓你能用更少的代碼去調用 matplotlib的方法。
  • 重磅:包郵寄送《Python數據可視化之美》
    另外,《R語言數據可視化之美》基於R中的ggplot2包及其拓展包等,系統性地介紹了幾乎所有常見的二維和三維圖表的繪製方法。所以很有必要系統性地介紹python的繪圖語法系統,包括最基礎也最常用的matplotlib包、常用於統計分析的seaborn、最新出現類似R ggplot2語法的plotnine以及用於地理空間數據可視化的basemap包。
  • 大數據可視化是什麼?應該怎麼用?
    今天,我們以網際網路安全領域為例,來分析一下大數據可視化的應用。大數據可視化是個熱門話題,在信息安全領域,也由於很多企業希望將大數據轉化為信息可視化呈現的各種形式,以便獲得更深的洞察力、更好的決策力以及更強的自動化處理能力,數據可視化已經成為網絡安全技術的一個重要趨勢。
  • 從小白到大師,這裡有一份Pandas入門指南
    ;可以用 head() 和 tail() 來可視化數據框的一小部分。這種分類類型允許用索引替換重複值,還可以把實際值存在其他位置。教科書中的例子是國家。和多次存儲相同的字符串「瑞士」或「波蘭」比起來,為什麼不簡單地用 0 和 1 替換它們,並存儲在字典中呢?
  • 十分鐘學習pandas!pandas常用操作總結!
    學習Python, 當然少不了pandas,pandas是python數據科學中的必備工具,熟練使用pandas是從sql boy/girl 跨越到一名優秀的數據分析師傅的必備技能。這篇pandas常用操作總結幫大家回顧下pandas的常用語法,尤其是我們分析數據時常用的方法。
  • 數據可視化系統(大屏)的主要目的是什麼?
    因此,到底如何去抓住數據,數據可視化系統的主要目的就是這個,幫助使用者發揮數據本身的價值,讓使用者去作出正確決策或行動。數據可視化,是將數據信息以直觀的圖表、圖形展示出來的一種表現形式。簡單地介紹一下目前數據可視化項目的流程,去幫助我們理解。
  • 酷炫的可視化圖表工具來幫忙 深度評測五大Python數據可視化工具
    不少Python用戶的一大訴求是做出各種酷炫的可視化圖表,而這就需要了解清楚工具特色,才好在製作不同類型圖表順利找到適合自己的那一款。今天就來聊聊五個Python數據可視化的庫Matplotlib、Pyecharts、Seaborn、Plotly、Bokeh各有哪些優缺點。
  • 別再用Pandas處理大數據了!現在你擁有更好的選擇
    Pandas並不具備多處理器,並且處理較大的數據集速度很慢。筆者消耗在等待Pandas讀取一堆文件或對其進行匯總計算上的時間太多太多了。最近,筆者發現了一個更好的工具可以更新數據處理管道,使這些CPU內核正常工作!筆者使用該工具進行繁重的數據處理,例如讀取包含10 G數據的多個文件,對其進行過濾並匯總。
  • PANDAS: 新手教程 一 - 人工智慧遇見磐創
    它可以幫助你對數據進行各種操作,並生成有關它的不同報告。我將把這篇文章分成兩篇基本知識-我將在這個故事中介紹。我將介紹Pandas的基本功能,這些功能將使你大致了解如何開始使用Pandas,以及它如何幫助你節省大量時間。高級-將通過高級的功能,使它更容易解決複雜的分析問題。它將涵蓋的主題,如風格,繪圖,讀取多個文件等。第二部分仍在進行中,敬請期待。
  • 數據科學家和軟體工程師都在用的pandas函數有哪些?
    anime =pd.read_csv('anime-recommendations-database/anime.csv')根據輸入數據構建數據框這在手動示例化簡單數據時十分有用,方便查看這些數據運行時如何變化。
  • 數據可視化圖表的使用方式及最佳做法,你用對了嗎?
    很多人在了解到具體的數據可視化圖表之後,在製作數據可視化大屏過程當中都會有一個共通的疑問,那就是 「我該怎麼去使用這些圖表,什麼時候該用什麼樣的圖表類型呢