當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python pandas.plotting.boxplot用法及代碼示例

用法:

pandas.plotting.boxplot(data, column=None, by=None, ax=None, fontsize=None, rot=0, grid=True, figsize=None, layout=None, return_type=None, **kwargs)

從 DataFrame 列製作箱形圖。

從 DataFrame 列製作box-and-whisker 圖,可選擇按其他一些列分組。箱線圖是一種通過四分位數以圖形方式描繪數值數據組的方法。該框從數據的 Q1 到 Q3 四分位值延伸,在中位數 (Q2) 處有一條線。胡須從框的邊延伸以顯示數據的範圍。默認情況下,它們從框的邊延伸不超過1.5 * IQR (IQR = Q3 - Q1),在該間隔內最遠的數據點處結束。異常值被繪製為單獨的點。

有關詳細信息,請參閱 Wikipedia 的 boxplot 條目。

參數

columnstr 或 str 列表,可選

列名或名稱列表,或向量。可以是 pandas.DataFrame.groupby() 的任何有效輸入。

bystr 或array-like,可選

DataFrame 中的列到 pandas.DataFrame.groupby() 。每個 by 中的列值將完成一個 box-plot 。

axmatplotlib.axes.Axes 類的對象,可選

boxplot 要使用的 matplotlib 軸。

fontsize浮點數或 str

刻度標簽字體大小(以磅為單位或作為字符串)(例如,large)。

rot整數或浮點數,默認為 0

標簽相對於屏幕坐標係的旋轉角度(以度為單位)。

grid布爾值,默認為真

將此設置為 True 將顯示網格。

figsize以英寸為單位的元組(寬度,高度)

在 matplotlib 中創建的圖形的大小。

layout元組(行、列),可選

例如,(3, 5) 將使用 3 列和 5 行顯示子圖,從左上角開始。

return_type{‘axes’, ‘dict’, ‘both’} 或無,默認 ‘axes’

要返回的對象類型。默認值為 axes

  • ‘axes’ 返回繪製箱線圖的 matplotlib 軸。

  • ‘dict’ 返回一個字典,其值是箱線圖的 matplotlib 線。

  • ‘both’ 返回一個帶坐標軸和字典的命名元組。

  • 當與 by 分組時,將返回一個將列映射到 return_type 的係列。

    如果 return_typeNone ,則返回與 layout 形狀相同的 NumPy 軸數組。

**kwargs

要傳遞給 matplotlib.pyplot.boxplot() 的所有其他繪圖關鍵字參數。

返回

結果

請參閱注釋。

注意

返回類型取決於 return_type 參數:

  • ‘axes’:matplotlib.axes.Axes 類的對象

  • ‘dict’:matplotlib.lines.Line2D 對象的字典

  • ‘both’:具有結構(ax,lines)的命名元組

對於與 by 分組的數據,返回上述係列或 numpy 數組:

  • Series

  • array(對於 return_type = None )

如果要在繪圖後調整線條的外觀,請使用 return_type='dict'。在這種情況下,將返回一個包含組成盒子、大寫字母、傳單、中位數和胡須的 Lines 的字典。

例子

可以通過df.boxplot() 或指示要使用的列為 DataFrame 中的每一列創建箱線圖:

>>> np.random.seed(1234)
>>> df = pd.DataFrame(np.random.randn(10, 4),
...                   columns=['Col1', 'Col2', 'Col3', 'Col4'])
>>> boxplot = df.boxplot(column=['Col1', 'Col2', 'Col3'])
pandas-plotting-boxplot-1.png

可以使用選項 by 創建按第三個變量的值分組的變量分布箱線圖。例如:

>>> df = pd.DataFrame(np.random.randn(10, 2),
...                   columns=['Col1', 'Col2'])
>>> df['X'] = pd.Series(['A', 'A', 'A', 'A', 'A',
...                      'B', 'B', 'B', 'B', 'B'])
>>> boxplot = df.boxplot(by='X')
pandas-plotting-boxplot-2.png

可以將字符串列表(即 ['X', 'Y'] )傳遞給箱線圖,以便通過 x 軸中的變量組合對數據進行分組:

>>> df = pd.DataFrame(np.random.randn(10, 3),
...                   columns=['Col1', 'Col2', 'Col3'])
>>> df['X'] = pd.Series(['A', 'A', 'A', 'A', 'A',
...                      'B', 'B', 'B', 'B', 'B'])
>>> df['Y'] = pd.Series(['A', 'B', 'A', 'B', 'A',
...                      'B', 'A', 'B', 'A', 'B'])
>>> boxplot = df.boxplot(column=['Col1', 'Col2'], by=['X', 'Y'])
pandas-plotting-boxplot-3.png

可以調整箱線圖的布局,為 layout 提供一個元組:

>>> boxplot = df.boxplot(column=['Col1', 'Col2'], by='X',
...                      layout=(2, 1))
pandas-plotting-boxplot-4.png

可以對箱線圖進行其他格式化,例如抑製網格(grid=False)、在 x 軸上旋轉標簽(即 rot=45 )或更改字體大小(即 fontsize=15 ):

>>> boxplot = df.boxplot(grid=False, rot=45, fontsize=15)
pandas-plotting-boxplot-5.png

參數 return_type 可用於選擇 boxplot 返回的元素類型。選擇 return_type='axes' 時,將返回繪製箱線圖的 matplotlib 軸:

>>> boxplot = df.boxplot(column=['Col1', 'Col2'], return_type='axes')
>>> type(boxplot)
<class 'matplotlib.axes._subplots.AxesSubplot'>

當使用 by 分組時,將返回一個將列映射到 return_type 的係列:

>>> boxplot = df.boxplot(column=['Col1', 'Col2'], by='X',
...                      return_type='axes')
>>> type(boxplot)
<class 'pandas.core.series.Series'>

如果 return_typeNone ,則返回與 layout 形狀相同的 NumPy 軸數組:

>>> boxplot = df.boxplot(column=['Col1', 'Col2'], by='X',
...                      return_type=None)
>>> type(boxplot)
<class 'numpy.ndarray'>

相關用法


注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.plotting.boxplot。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。