
- Matplotlib 基礎
- Matplotlib - 首頁
- Matplotlib - 簡介
- Matplotlib - 與 Seaborn 的比較
- Matplotlib - 環境設定
- Matplotlib - Anaconda 發行版
- Matplotlib - Jupyter Notebook
- Matplotlib - Pyplot API
- Matplotlib - 簡單繪圖
- Matplotlib - 儲存圖形
- Matplotlib - 標記
- Matplotlib - 圖形
- Matplotlib - 樣式
- Matplotlib - 圖例
- Matplotlib - 顏色
- Matplotlib - 色圖
- Matplotlib - 色圖歸一化
- Matplotlib - 選擇色圖
- Matplotlib - 色標
- Matplotlib - 文字
- Matplotlib - 文字屬性
- Matplotlib - 子圖示題
- Matplotlib - 影像
- Matplotlib - 影像掩碼
- Matplotlib - 註釋
- Matplotlib - 箭頭
- Matplotlib - 字型
- Matplotlib - 什麼是字型?
- 全域性設定字型屬性
- Matplotlib - 字型索引
- Matplotlib - 字型屬性
- Matplotlib - 刻度
- Matplotlib - 線性和對數刻度
- Matplotlib - 對稱對數和 Logit 刻度
- Matplotlib - LaTeX
- Matplotlib - 什麼是 LaTeX?
- Matplotlib - LaTeX 用於數學表示式
- Matplotlib - LaTeX 在註釋中的文字格式化
- Matplotlib - PostScript
- 在註釋中啟用 LaTeX 渲染
- Matplotlib - 數學表示式
- Matplotlib - 動畫
- Matplotlib - 圖形物件
- Matplotlib - 使用 Cycler 進行樣式設定
- Matplotlib - 路徑
- Matplotlib - 路徑效果
- Matplotlib - 變換
- Matplotlib - 刻度和刻度標籤
- Matplotlib - 弧度刻度
- Matplotlib - 日期刻度
- Matplotlib - 刻度格式化器
- Matplotlib - 刻度定位器
- Matplotlib - 基本單位
- Matplotlib - 自動縮放
- Matplotlib - 反轉軸
- Matplotlib - 對數軸
- Matplotlib - Symlog
- Matplotlib - 單位處理
- Matplotlib - 帶有單位的橢圓
- Matplotlib - 脊柱
- Matplotlib - 軸範圍
- Matplotlib - 軸刻度
- Matplotlib - 軸刻度
- Matplotlib - 格式化軸
- Matplotlib - Axes 類
- Matplotlib - 雙軸
- Matplotlib - Figure 類
- Matplotlib - 多圖
- Matplotlib - 網格
- Matplotlib - 面向物件介面
- Matplotlib - PyLab 模組
- Matplotlib - Subplots() 函式
- Matplotlib - Subplot2grid() 函式
- Matplotlib - 固定圖形物件
- Matplotlib - 手動等值線
- Matplotlib - 座標報告
- Matplotlib - AGG 過濾器
- Matplotlib - 帶狀框
- Matplotlib - 填充螺旋
- Matplotlib - Findobj 演示
- Matplotlib - 超連結
- Matplotlib - 影像縮圖
- Matplotlib - 使用關鍵字繪圖
- Matplotlib - 建立徽標
- Matplotlib - 多頁 PDF
- Matplotlib - 多程序
- Matplotlib - 列印標準輸出
- Matplotlib - 複合路徑
- Matplotlib - Sankey 類
- Matplotlib - MRI 與 EEG
- Matplotlib - 樣式表
- Matplotlib - 背景顏色
- Matplotlib - Basemap
- Matplotlib 事件處理
- Matplotlib - 事件處理
- Matplotlib - 關閉事件
- Matplotlib - 滑鼠移動
- Matplotlib - 點選事件
- Matplotlib - 滾動事件
- Matplotlib - 按鍵事件
- Matplotlib - 選擇事件
- Matplotlib - 放大鏡
- Matplotlib - 路徑編輯器
- Matplotlib - 多邊形編輯器
- Matplotlib - 定時器
- Matplotlib - Viewlims
- Matplotlib - 縮放視窗
- Matplotlib 小部件
- Matplotlib - 游標小部件
- Matplotlib - 帶註釋的游標
- Matplotlib - 按鈕小部件
- Matplotlib - 複選框
- Matplotlib - 套索選擇器
- Matplotlib - 選單小部件
- Matplotlib - 滑鼠游標
- Matplotlib - 多游標
- Matplotlib - 多邊形選擇器
- Matplotlib - 單選按鈕
- Matplotlib - 範圍滑塊
- Matplotlib - 矩形選擇器
- Matplotlib - 橢圓選擇器
- Matplotlib - 滑塊小部件
- Matplotlib - 跨度選擇器
- Matplotlib - 文字框
- Matplotlib 繪圖
- Matplotlib - 條形圖
- Matplotlib - 直方圖
- Matplotlib - 餅圖
- Matplotlib - 散點圖
- Matplotlib - 箱線圖
- Matplotlib - 小提琴圖
- Matplotlib - 等值線圖
- Matplotlib - 3D 繪圖
- Matplotlib - 3D 等值線
- Matplotlib - 3D 線框圖
- Matplotlib - 3D 表面圖
- Matplotlib - 矢羽圖
- Matplotlib 有用資源
- Matplotlib - 快速指南
- Matplotlib - 有用資源
- Matplotlib - 討論
Matplotlib - 直方圖
直方圖就像一個視覺摘要,它顯示了資料集中不同值出現的頻率。想象一下,你有一組數字,比如人們的年齡。直方圖將這些數字分成組,稱為“區間”,然後使用條形表示每個區間中有多少個數字。條形越高,該組中的數字就越多。

Matplotlib 中的直方圖
我們可以使用 hist() 函式在 Matplotlib 中建立直方圖。此函式允許我們自定義直方圖的各個方面,例如區間的數量、顏色和透明度。Matplotlib 中的直方圖用於表示數值資料的分佈,幫助你識別模式。
hist() 函式
Matplotlib 中的 hist() 函式以資料集作為輸入,並將其劃分為區間(區間)。然後,它將落在每個區間內的資料點的頻率(計數)顯示為條形圖。
以下是 Matplotlib 中 hist() 函式的語法:
語法
plt.hist(x, bins=None, range=None, density=False, cumulative=False, color=None, edgecolor=None, ...)
其中,
x 是確定直方圖的輸入資料。
bins(可選) 是區間的數量或區間邊緣。
range(可選) 是區間的下限和上限。預設值為 x 的最小值和最大值
如果 density(可選) 為 True,則直方圖表示機率密度函式。預設為 False。
如果 cumulative(可選) 為 True,則計算累積直方圖。預設為 False。
這些只是一些引數;還有更多可選引數可用於自定義。
建立垂直直方圖
在 Matplotlib 中,建立垂直直方圖涉及繪製資料集頻率分佈的圖形表示,其中條形沿 y 軸垂直排列。每個條形表示沿 x 軸特定區間或區間內資料點的頻率或計數。
示例
在以下示例中,我們透過在 hist() 函式中將“orientation”引數設定為“vertical”來建立垂直直方圖:
import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True x = [1, 2, 3, 1, 2, 3, 4, 1, 3, 4, 5] plt.hist(x, orientation="vertical") plt.show()
輸出
我們得到如下所示的輸出:

帶密度的自定義直方圖
當我們使用密度建立直方圖時,我們提供了資料的分佈情況的視覺摘要。我們使用此圖形來檢視不同數字出現的可能性,而 density 選項確保直方圖下方的總面積歸一化為 1。
示例
在以下示例中,我們將隨機資料視覺化為具有 30 個區間的直方圖,以綠色顯示並帶有黑色邊緣。我們使用 density=True 引數來表示機率密度:
import matplotlib.pyplot as plt import numpy as np # Generate random data data = np.random.randn(1000) # Create a histogram with density and custom color plt.hist(data, bins=30, density=True, color='green', edgecolor='black', alpha=0.7) plt.xlabel('Values') plt.ylabel('Probability Density') plt.title('Customized Histogram with Density') plt.show()
輸出
執行上述程式碼後,我們將得到以下輸出:

累積直方圖
當我們建立累積直方圖時,我們以圖形方式表示直到某個點為止值的總出現次數。它顯示了多少資料點低於或等於某個值。
示例
在這裡,我們使用一個直方圖,其中每個條形代表一個考試分數範圍,而條形的高度告訴我們總共有多少學生獲得了該範圍內的分數。透過在 hist() 函式中設定 cumulative=True 引數,我們確保直方圖顯示分數的累積進展:
import matplotlib.pyplot as plt import numpy as np # Generate random exam scores (out of 100) exam_scores = np.random.randint(0, 100, 150) # Create a cumulative histogram plt.hist(exam_scores, bins=20, cumulative=True, color='orange', edgecolor='black', alpha=0.7) plt.xlabel('Exam Scores') plt.ylabel('Cumulative Number of Students') plt.title('Cumulative Histogram of Exam Scores') plt.show()
輸出
以下是上述程式碼的輸出:

具有不同顏色和邊緣顏色的直方圖
建立直方圖時,我們可以自定義填充顏色和邊緣顏色,為表示資料分佈新增視覺效果。透過這樣做,我們將直方圖與時尚和獨特的視覺效果融為一體。
示例
現在,我們正在為隨機資料生成一個具有 25 個區間的直方圖,並以紫色顯示並帶有藍色邊緣:
import matplotlib.pyplot as plt import numpy as np data = np.random.randn(1000) # Creating a histogram with different color and edge color plt.hist(data, bins=25, color='purple', edgecolor='blue') plt.xlabel('Values') plt.ylabel('Frequency') plt.title('Histogram with Different Color and Edge Color') plt.show()
輸出
執行上述程式碼後,我們將得到以下輸出:

示例
要繪製帶顏色的直方圖,我們還可以從 setp() 方法中的“cm”引數中提取顏色。
import numpy as np from matplotlib import pyplot as plt plt.rcParams["figure.figsize"] = [7.00, 3.50] plt.rcParams["figure.autolayout"] = True data = np.random.random(1000) n, bins, patches = plt.hist(data, bins=25, density=True, color='red', rwidth=0.75) col = (n-n.min())/(n.max()-n.min()) cm = plt.cm.get_cmap('RdYlBu') for c, p in zip(col, patches): plt.setp(p, 'facecolor', cm(c)) plt.show()
輸出
執行上述程式碼後,我們將得到以下輸出:

示例
在這裡,我們透過迭代區間數量的範圍併為每個條形設定隨機 facecolor 來為 Matplotlib 直方圖中的不同條形指定不同的顏色:
import numpy as np import matplotlib.pyplot as plt import random import string # Set the figure size plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True # Figure and set of subplots fig, ax = plt.subplots() # Random data data = np.random.rand(100) # Plot a histogram with random data N, bins, patches = ax.hist(data, edgecolor='black', linewidth=1) # Random facecolor for each bar for i in range(len(N)): patches[i].set_facecolor("#" + ''.join(random.choices("ABCDEF" + string.digits, k=6))) # Display the plot plt.show()
輸出
執行上述程式碼後,我們將得到以下輸出:

具有多個數據集的堆疊直方圖
具有多個數據集的堆疊直方圖是一種視覺表示,它組合了兩個或多個數據集的分佈。條形彼此堆疊,從而可以比較不同資料集如何影響整體分佈。
示例
在下面的示例中,我們使用特定值表示兩個不同的資料集“data1”和“data2”,並以不同的顏色(天藍色和鮭魚色)顯示它們的分佈:
import matplotlib.pyplot as plt import numpy as np # Sample data for two datasets data1 = np.array([2, 4, 5, 7, 9, 10, 11, 13, 14, 15]) data2 = np.array([6, 7, 8, 10, 11, 12, 13, 14, 15, 16]) # Creating a stacked histogram with different colors plt.hist([data1, data2], bins=10, stacked=True, color=['skyblue', 'salmon'], edgecolor='black') plt.xlabel('Values') plt.ylabel('Frequency') plt.title('Stacked Histogram with Multiple Datasets') plt.legend(['Dataset 1', 'Dataset 2']) plt.show()
輸出
執行上述程式碼後,我們將得到以下輸出:
