如何從 Pandas DataFrame 創建直方圖?
直方圖是一種用來表示數據分布的圖形。愛掏網 - it200.com在數據可視化過程中,直方圖被廣泛應用。愛掏網 - it200.com在 Python 中,Pandas 是處理和分析數據的一種非常流行的工具,它提供了很多便捷的操作,包括創建直方圖。愛掏網 - it200.com
在本文中,我將會向大家介紹如何使用 Pandas DataFrame 創建直方圖。愛掏網 - it200.com接下來,我將會從以下幾個方面講解。愛掏網 - it200.com
首先,我們需要準備一些數據,作為創建直方圖的原料。愛掏網 - it200.com在本文中,我將使用 Pandas DataFrame 創建直方圖。愛掏網 - it200.com具體來說,我們可以使用 Pandas 的 DataFrame.hist() 函數來創建直方圖。愛掏網 - it200.com
為了讓大家更好地理解,下面是一份樣例數據,你可以將其保存為 sample_data.csv 文件。愛掏網 - it200.com數據中包括了 Pandas DataFrame 的兩列數據。愛掏網 - it200.com
Column_A Column_B
0 36 153
1 53 171
2 38 175
3 31 159
4 27 176
5 30 157
6 49 173
7 21 164
8 37 169
9 34 163
我們使用 Pandas 的 read_csv() 函數讀取該文件。愛掏網 - it200.com代碼如下:
import pandas as pd
df = pd.read_csv('sample_data.csv')
創建直方圖
有了數據之后,我們接下來就可以使用 DataFrame.hist() 函數來創建直方圖。愛掏網 - it200.com該函數的參數中,bibs 參數表示將數據分成多少個區間(即柱子的個數),range 參數表示繪制直方圖時的數據的范圍。愛掏網 - it200.com代碼如下:
df.hist(bins=10, range=(0, 200))
上述代碼將形成兩張直方圖,分別是 Column_A 和 Column_B 的直方圖。愛掏網 - it200.com其中,bins=10 表示將數據分成 10 個區間,range=(0, 200) 表示繪制直方圖時的數據范圍是 0 到 200。愛掏網 - it200.com
優化直方圖
我們創建了直方圖之后,可以發現,當前的直方圖還有一些不足之處。愛掏網 - it200.com比如:
- 兩張直方圖重疊在了一起;
- 每張直方圖中柱子的顏色相同,難以區分各個柱子。愛掏網 - it200.com
接下來,我們將嘗試通過代碼來解決這些問題。愛掏網 - it200.com
各個直方圖分離
首先,我們需要讓兩張直方圖分離開來,這樣才能更清晰地看到每張直方圖所表示的含義。愛掏網 - it200.com有兩種常見的方法可以將兩張直方圖分離。愛掏網 - it200.com
方法一:使用 matplotlib 子圖
我們可以使用 matplotlib 這個 Python 繪圖庫,在同一幅圖中創建兩個子圖,分別繪制 Column_A 和 Column_B。愛掏網 - it200.com代碼如下:
import matplotlib.pyplot as plt
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10, 5))
df['Column_A'].plot(ax=axes[0], kind='hist', bins=10, range=(0, 200))
df['Column_B'].plot(ax=axes[1], kind='hist', bins=10, range=(0, 200))
在上述代碼中,我們使用 subplot() 函數創建了兩個子圖。愛掏網 - it200.com參數 nrows=1, ncols=2 表示創建 1 行 2 列的圖形。愛掏網 - it200.comfigsize=(10, 5) 表示圖形的大小。愛掏網 - it200.com接下來,我們在每個子圖中繪制 DataFrame 的直方圖,通過 kind=’hist’ 參數來告訴 Pandas 我們要繪制直方圖。愛掏網 - it200.com
方法二:使用 Pandas 的 hist() 函數
我們也可以使用 Pandas 自帶的 hist() 函數來分離兩張直方圖,這個函數默認將 DataFrame 中的每一列繪制成一張直方圖。愛掏網 - it200.com代碼如下: