掃描做電子版網(wǎng)站百度地圖收錄提交入口
Matplotlib庫(kù)學(xué)習(xí)之scatter(模塊)
一、簡(jiǎn)介
Matplotlib 是 Python 中一個(gè)強(qiáng)大的繪圖庫(kù),其中 matplotlib.pyplot.scatter
用于創(chuàng)建散點(diǎn)圖。散點(diǎn)圖在數(shù)據(jù)可視化中廣泛用于展示兩個(gè)變量之間的關(guān)系。
二、語(yǔ)法和參數(shù)
語(yǔ)法
matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, edgecolors=None, plotnonfinite=False, data=None, **kwargs)
參數(shù)
- x, y: 必選參數(shù),代表散點(diǎn)圖中每個(gè)點(diǎn)的 x 坐標(biāo)和 y 坐標(biāo)。
- s: 可選,標(biāo)量或數(shù)組,用于控制每個(gè)點(diǎn)的大小。
- c: 可選,標(biāo)量或數(shù)組,用于控制每個(gè)點(diǎn)的顏色。
- marker: 可選,表示散點(diǎn)的形狀,默認(rèn)為
'o'
。 - cmap: 可選,
Colormap
對(duì)象或字符串,用于將標(biāo)量數(shù)據(jù)映射到顏色。 - norm: 可選,
Normalize
對(duì)象,用于縮放顏色數(shù)據(jù)。 - vmin, vmax: 可選,控制亮度標(biāo)量數(shù)據(jù)的最小值和最大值。
- alpha: 可選,標(biāo)量,用于設(shè)置透明度。
- linewidths: 可選,標(biāo)量或數(shù)組,表示每個(gè)點(diǎn)的邊緣寬度。
- edgecolors: 可選,表示點(diǎn)的邊緣顏色。
- plotnonfinite: 可選,布爾值,如果為
True
,會(huì)繪制非有限點(diǎn)(NaN
或Inf
)。 - data: 可選,傳遞數(shù)據(jù)的對(duì)象。
- kwargs: 其他傳遞給
matplotlib.axes.Axes.scatter
的參數(shù)。
返回值
返回一個(gè) PathCollection
對(duì)象,表示繪制的散點(diǎn)圖。
三、實(shí)例
3.1 繪制簡(jiǎn)單的散點(diǎn)圖
import matplotlib.pyplot as plt# 數(shù)據(jù)
x = [1, 2, 3, 4, 5]
y = [2, 3, 4, 5, 6]# 繪制散點(diǎn)圖
plt.scatter(x, y)
plt.title("Simple Scatter Plot")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.show()
輸出:
顯示一個(gè)簡(jiǎn)單的散點(diǎn)圖,其中X軸表示1到5的值,Y軸表示2到6的值,每個(gè)點(diǎn)為一個(gè)圓形標(biāo)記。
3.2 設(shè)置不同大小和顏色的點(diǎn)
import matplotlib.pyplot as plt# 數(shù)據(jù)
x = [1, 2, 3, 4, 5]
y = [2, 3, 4, 5, 6]
sizes = [20, 50, 80, 200, 500]
colors = [10, 20, 30, 40, 50]# 繪制散點(diǎn)圖
plt.scatter(x, y, s=sizes, c=colors, cmap='viridis', alpha=0.6)
plt.title("Scatter Plot with Varying Sizes and Colors")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.colorbar() # 添加顏色條
plt.show()
輸出:
顯示一個(gè)散點(diǎn)圖,其中每個(gè)點(diǎn)的大小和顏色各不相同,點(diǎn)的顏色根據(jù)'viridis'顏色映射來(lái)進(jìn)行區(qū)分。
3.3 使用自定義標(biāo)記形狀和邊緣顏色
import matplotlib.pyplot as plt# 數(shù)據(jù)
x = [1, 2, 3, 4, 5]
y = [2, 3, 4, 5, 6]
sizes = [100] * 5
colors = [0, 1, 2, 3, 4]# 繪制散點(diǎn)圖
plt.scatter(x, y, s=sizes, c=colors, marker='^', edgecolors='r', linewidths=2, cmap='plasma')
plt.title("Scatter Plot with Custom Marker and Edge Color")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.colorbar() # 添加顏色條
plt.show()
輸出:
顯示一個(gè)散點(diǎn)圖,其中每個(gè)點(diǎn)的標(biāo)記形狀為三角形,并且有紅色邊緣,每個(gè)點(diǎn)的顏色根據(jù)'plasma'顏色映射來(lái)區(qū)分。
四、注意事項(xiàng)
- 當(dāng)使用
c
參數(shù)進(jìn)行顏色映射時(shí),如果c
是標(biāo)量數(shù)組,則需要指定cmap
來(lái)定義顏色映射的范圍。 alpha
參數(shù)可以用于調(diào)整點(diǎn)的透明度,值越低,點(diǎn)越透明。- 當(dāng)
edgecolors
為'none'
時(shí),點(diǎn)將沒(méi)有邊緣顏色。