pandas可視化(5)【官方文檔解讀】-- Hexagonal Bin Plot(我翻譯為六角形箱體圖)、餅圖

前言

前文傳送門:

pandas可視化(1)【官方文檔解讀】--基礎繪圖

pandas可視化(2)【官方文檔解讀】-- 條形圖、直方圖

pandas可視化(3)【官方文檔解讀】-- 箱線圖

pandas可視化(4)【官方文檔解讀】-- 區域圖、散點圖

如繪圖過程中,中文字體和負號顯示有問題,可以參照如下鏈接修改配置參數設置正常顯示:

joinquant.com/post/441

六角形箱體圖

import matplotlibnimport matplotlib.pyplot as pltnimport pandas as pdnimport numpy as npnmatplotlib.style.use(ggplot)#使用ggplot樣式n%matplotlib inlinen

註:如前一章,先導入必要的模塊和繪圖的數據準備

六角形箱體圖

你可以使用DataFrame.plot.hexbin()創建六邊形圖形圖。

如果您的數據太密集,可以單獨繪製每個點,六角形箱體圖可以是散點圖的有用替代方法。

df = pd.DataFrame(np.random.randn(1000, 2), columns=[a, b])ndf.plot.hexbin(x=a, y=b, gridsize=10)n

註:左邊坐標表示的是值的分布(這個圖是二維標準正態分布)

右邊是數據量大小與顏色的對比,gridsize=10指的是大小,我們將其調為25:

df = pd.DataFrame(np.random.randn(1000, 2), columns=[a, b])ndf.plot.hexbin(x=a, y=b, gridsize=25)n

我們接下來不做二維正態分布的圖,加一個干擾:

df = pd.DataFrame(np.random.randn(1000, 2), columns=[a, b])ndf[b] = df[b] + np.arange(1000)ndf.plot.hexbin(x=a, y=b, gridsize=25)n

一個有用的關鍵字參數是gridsize; 它控制x方向的六邊形數量,並且默認為100.較大的格柵意味著更多的較小的分區。

默認情況下,計算每個(x,y)點周圍計數的直方圖。 可以通過將值傳遞給C和reduce_C_function參數來指定替代聚合。

C指定每個(x,y)點處的值,reduce_C_function是一個參數的函數,將一個bin中的所有值都減少為一個數字(例如,mean,max,sum,std)。

在該示例中,位置由列a和b給出,而值由列z給出。 bins與numpy的最大功能相結合。

df = pd.DataFrame(np.random.randn(1000, 2), columns=[a, b])ndf[b] = df[b] = df[b] + np.arange(1000)ndf[z] = np.random.uniform(0, 3, 1000)ndf.plot.hexbin(x=a, y=b, C=z, reduce_C_function=np.max,n gridsize=20)n

註:這裡z為在0-3上的均勻分布

餅圖

可以使用DataFrame.plot.pie()或Series.plot.pie()創建餅圖。

如果您的數據包含任何NaN,它們將自動填滿0.如果數據中有任何負值,則會引發ValueError。

series = pd.Series(3 * np.random.rand(4), index=[a, b, c, d], name=series)nseries.plot.pie(figsize=(6, 6))n

註:餅圖大小為6x6,如果長寬不一樣,畫出來是類似橢圓的

對於餅圖,最好使用平方數字,具有相等的長寬比。

可以創建具有相同寬度和高度的圖形,或者通過在返回的軸對象上調用ax.set_aspect(equal)來強制繪製後的寬高比相等。

請注意,使用DataFrame的餅圖需要您通過y參數或subplots = True指定目標列。

指定y時,將繪製所選列的餅圖。 如果指定subplots= True,則每列的餅圖將繪製為子圖。

默認情況下,每個餅圖將繪製一個圖例; 指定legend = False隱藏它。

df = pd.DataFrame(3 * np.random.rand(4, 2), index=[a, b, c, d], columns=[x, y])ndf.plot.pie(subplots=True, figsize=(9,4))n

註:子圖繪製,默認顯示圖例,可以自己指定整個圖的長寬大小(這裡我選取9x4最後效果比較好)

您可以使用標籤和顏色關鍵字來指定每塊的標籤和顏色。

如果要隱藏標籤,請指定標籤=無。 如果指定了fontsize,該值將應用於標籤。

另外,可以使用matplotlib.pyplot.pie()支持的其他關鍵字。

series.plot.pie(labels=[AA, BB, CC, DD], colors=[r, g, b, c],n autopct=%.2f, fontsize=15, figsize=(6, 6))n

註:colors指定每塊對應的顏色,autopct是自動計算百分比顯示,fontsize是百分比字體顯示的大小

如果您傳遞總和小於1.0的值,則matplotlib繪製半圓。

series = pd.Series([0.1] * 4, index=[a, b, c, d], name=series2)nseries.plot.pie(figsize=(6, 6))n

註:

是快速創建列表的一種方式

pandas繪製六角形箱體圖和餅圖圖到此結束

文中所寫如有謬誤請指出,感謝!

參考文獻

pandas.pydata.org/panda

作者:王大偉 Python愛好者社區唯一小編,請勿轉載,謝謝。

出處:pandas可視化(5)【官方文檔解讀】-- Hexagonal Bin Plot(我翻譯為六角形箱體圖)、餅圖

配套視頻教程:Python3爬蟲三大案例實戰分享:貓眼電影、今日頭條街拍美圖、淘寶美食 Python3爬蟲三大案例實戰分享

公眾號:Python愛好者社區(微信ID:python_shequ),關注,查看更多連載內容。

推薦閱讀:

TAG:Python | 可视化 | Python入门 |