使用Python制作氣泡熱圖的示例代碼
在數據分析和可視化中,氣泡熱圖是一種非常直觀的工具,可以展示數據之間的關系和強度。今天,我將帶你一步步學會如何用Python制作一個氣泡熱圖。別擔心,我會用最簡單的方式解釋每一個步驟,即使你沒有編程基礎也能輕松上手!
一、什么是氣泡熱圖
氣泡熱圖是一種結合了氣泡圖和熱圖特點的可視化圖表。它通過氣泡的大小和顏色來表示數據的強度,同時通過位置來展示數據的分類或分組。這種圖表非常適合展示多個變量之間的關系,例如不同樣本之間的某種屬性強度。
二、我們需要什么樣的數據
在制作氣泡熱圖之前,我們需要準備以下類型的數據:
兩個分類變量:這兩個變量將決定氣泡的位置。例如,X軸可以是一個分類變量(如不同的類別或分組),Y軸是另一個分類變量。
一個數值變量:這個變量決定了氣泡的大小和顏色,通常表示某種強度或值的大小。
在我們的代碼示例中,我們用的是隨機生成的數據,但如果你有自己的數據,可以按照類似的結構準備。比如:
- X軸:1到10的類別(可以是任何分組)。
- Y軸:1到10的樣本(也可以是其他分組)。
- 每個氣泡的大小和顏色由一個10×10的矩陣決定,矩陣中的每個值表示氣泡的強度。
三、開始制作氣泡熱圖
1. 安裝必要的庫
在開始之前,我們需要安裝兩個Python庫:numpy和matplotlib。這兩個庫分別用于處理數據和繪圖。
如果你還沒有安裝,可以通過以下命令安裝:
pip install numpy matplotlib
2. 準備代碼
接下來,我們來看看代碼的每一步。
(1)導入庫
import numpy as np import matplotlib.pyplot as plt
numpy用于處理數據,比如生成網格和隨機數。matplotlib.pyplot用于繪圖。
(2)創(chuàng)建示例數據
K = np.arange(1, 11) # X軸的分類變量 Samples = np.arange(1, 11) # Y軸的分類變量 X, Y = np.meshgrid(K - 0.5, Samples - 0.5) # 氣泡中心位于格子中心 Z = np.random.rand(10, 10) # 隨機生成的強度數據
K和Samples分別是X軸和Y軸的分類變量。X, Y是通過meshgrid生成的網格,用于確定氣泡的中心位置。Z是一個10×10的矩陣,表示每個氣泡的強度(隨機生成的)。
(3)設置氣泡大小
max_bubble_diameter = 0.8 # 最大氣泡直徑 bubble_sizes = Z * max_bubble_diameter**2 * 800 # 調整大小比例因子
氣泡的大小與Z成正比,但最大直徑被限制為0.8,以避免氣泡之間重疊。
(4)繪制氣泡圖
plt.figure(figsize=(10, 8)) # 設置圖形大小 scatter = plt.scatter(X, Y, s=bubble_sizes, c=Z, cmap='viridis', alpha=0.7, edgecolors="black", linewidth=1)
- 使用
scatter繪制氣泡圖。 s參數設置氣泡大小。c參數設置氣泡顏色,顏色由Z決定。cmap='viridis'設置了顏色映射,你可以換成其他顏色映射(如'plasma'或'coolwarm')。alpha是透明度,edgecolors和linewidth設置了氣泡的邊框顏色和寬度。
(5)添加顏色條
cbar = plt.colorbar(scatter)
cbar.set_label('Bubble Intensity', fontsize=12)顏色條可以幫助我們理解氣泡顏色的含義。
(6)設置標題和標簽
plt.title("Bubble Heatmap Plot", fontsize=18, fontweight='bold')
plt.xlabel("K (w)", fontsize=14)
plt.ylabel("Samples", fontsize=14)標題和坐標軸標簽讓圖表更清晰。
(7)設置坐標軸刻度和范圍
plt.xticks(K, fontsize=12) plt.yticks(Samples, fontsize=12) plt.xlim(0, 10) plt.ylim(0, 10)
確保氣泡對齊在格子內,避免被切割。
(8)添加網格
plt.grid(True, which='both', axis='both', linestyle='-', linewidth=1, color='black')
網格可以幫助我們更好地理解氣泡的位置。
(9)調整布局并顯示圖形
plt.tight_layout(pad=0.1) # 調整布局 plt.show() # 顯示圖形
四、運行代碼,查看結果
將上述代碼復制到你的Python環(huán)境中,運行后你將看到一個漂亮的氣泡熱圖!你可以嘗試修改數據或顏色映射,看看會發(fā)生什么變化。

完整代碼如下:
import numpy as np
import matplotlib.pyplot as plt
# 創(chuàng)建示例數據
K = np.arange(1, 11)
Samples = np.arange(1, 11)
X, Y = np.meshgrid(K - 0.5, Samples - 0.5) # 氣泡中心位于格子中心
Z = np.random.rand(10, 10)
# 設置氣泡大小,大小與數據Z成正比,但限制最大直徑為0.8
max_bubble_diameter = 0.8 # 最大氣泡直徑
bubble_sizes = Z * max_bubble_diameter**2 * 800 # 調整大小比例因子以適應最大直徑限制
# 創(chuàng)建氣泡圖
plt.figure(figsize=(10, 8))
# 繪制氣泡圖,使用 'viridis' 色系
scatter = plt.scatter(X, Y, s=bubble_sizes, c=Z, cmap='viridis', alpha=0.7, edgecolors="black", linewidth=1)
# 添加顏色條
cbar = plt.colorbar(scatter)
cbar.set_label('Bubble Intensity', fontsize=12)
# 設置標題和標簽
plt.title("Bubble Heatmap Plot", fontsize=18, fontweight='bold')
plt.xlabel("K (w)", fontsize=14)
plt.ylabel("Samples", fontsize=14)
# 設置坐標軸刻度,確保氣泡對齊在格子內
plt.xticks(K, fontsize=12)
plt.yticks(Samples, fontsize=12)
# 添加網格,清晰展示格子邊框
plt.grid(True, which='both', axis='both', linestyle='-', linewidth=1, color='black')
# 設置坐標軸范圍,使氣泡顯示在格子內,避免氣泡被切割
plt.xlim(0, 10)
plt.ylim(0, 10)
# 調整布局,確保圖形無多余空白并完整顯示
plt.tight_layout(pad=0.1) # 適當減小邊緣空白
# 顯示圖形
plt.show()五、總結
通過今天的教程,我們學會了如何用Python制作氣泡熱圖。只要準備好合適的分類變量和數值變量,就可以輕松生成這種直觀的圖表。希望你能用這個技能來展示你的數據!
到此這篇關于使用Python制作氣泡熱圖的示例代碼的文章就介紹到這了,更多相關Python氣泡熱圖內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
完美解決python中ndarray 默認用科學計數法顯示的問題
今天小編就為大家分享一篇完美解決python中ndarray 默認用科學計數法顯示的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07
python?requests.post請求404問題及解決方法
這篇文章主要介紹了python?requests.post請求404問題,這里需要根據自己實際情況來分析當前接口接收數據時使用的是什么格式,但目前一般的網站都開始采用application/jsond的數據格式,本文通過圖文并茂的形式給大家介紹的非常詳細,需要的朋友可以參考下2022-09-09
pycharm創(chuàng)建scrapy項目教程及遇到的坑解析
這篇文章主要介紹了pycharm創(chuàng)建scrapy項目教程及遇到的坑解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-08-08

