選單
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

Python 教程

Python 主頁 Python 簡介 Python 入門 Python 語法 Python 註釋 Python 變數 Python 資料型別 Python 數字 Python 型別轉換 Python 字串 Python 布林值 Python 運算子 Python 列表 Python 元組 Python 集合 Python 字典 Python If...Else Python While 迴圈 Python For 迴圈 Python 函式 Python Lambda Python 陣列 Python 類/物件 Python 繼承 Python 迭代器 Python 多型 Python 作用域 Python 模組 Python 日期 Python 數學 Python JSON Python 正則表示式 Python PIP Python Try...Except Python 使用者輸入 Python 字串格式化

檔案處理

Python 檔案處理 Python 讀取檔案 Python 寫入/建立檔案 Python 刪除檔案

Python 模組

NumPy 教程 Pandas 教程 SciPy 教程 Django 教程

Python Matplotlib

Matplotlib 簡介 Matplotlib 入門 Matplotlib Pyplot Matplotlib 繪圖 Matplotlib 標記 Matplotlib 線條 Matplotlib 標籤 Matplotlib 網格 Matplotlib 子圖 Matplotlib 散點圖 Matplotlib 條形圖 Matplotlib 直方圖 Matplotlib 餅圖

機器學習

入門 均值、中位數、眾數 標準差 百分位數 資料分佈 正態資料分佈 散點圖 線性迴歸 多項式迴歸 多元迴歸 縮放 訓練/測試 決策樹 混淆矩陣 層次聚類 邏輯迴歸 網格搜尋 分類資料 K-均值 Bootstrap Aggregation 交叉驗證 AUC - ROC 曲線 K-近鄰

Python MySQL

MySQL 入門 MySQL 建立資料庫 MySQL 建立表 MySQL 插入 MySQL 選擇 MySQL Where MySQL Order By MySQL 刪除 MySQL 刪除表 MySQL 更新 MySQL Limit MySQL Join

Python MongoDB

MongoDB 入門 MongoDB 建立資料庫 MongoDB 集合 MongoDB 插入 MongoDB Find MongoDB Query MongoDB Sort MongoDB 刪除 MongoDB 刪除集合 MongoDB 更新 MongoDB Limit

Python 參考

Python 概述 Python 內建函式 Python 字串方法 Python 列表方法 Python 字典方法 Python 元組方法 Python 集合方法 Python 檔案方法 Python 關鍵字 Python 異常 Python 詞彙表

模組參考

Random 模組 Requests 模組 Statistics 模組 Math 模組 cMath 模組

Python 如何操作

刪除列表重複項 反轉字串 兩個數字相加

Python 示例

Python 示例 Python 編譯器 Python 練習 Python 測驗 Python 伺服器 Python 面試問答 Python 訓練營 Python 證書

Matplotlib 散點圖


建立散點圖

使用 Pyplot,您可以呼叫 scatter() 函式來繪製散點圖。

scatter() 函式為每個觀測值繪製一個點。它需要兩個長度相同的陣列,一個用於 x 軸的值,另一個用於 y 軸的值。

示例

簡單的散點圖

import matplotlib.pyplot as plt
import numpy as np

x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])

plt.scatter(x, y)
plt.show()

結果

自己動手試一試 »

上面的示例中的觀測值是 13 輛汽車經過的結果。

X 軸顯示汽車的年齡。

Y 軸顯示汽車經過時的速度。

觀測值之間是否存在任何關係?

似乎汽車越新,開得越快,但這可能只是巧合,畢竟我們只記錄了 13 輛汽車。


比較繪圖

在上面的示例中,速度和年齡之間似乎存在關係,但如果我們繪製另一天的觀測值呢?散點圖是否會告訴我們其他資訊?

示例

在同一圖中繪製兩個圖

import matplotlib.pyplot as plt
import numpy as np

# 第一天,13 輛汽車的年齡和速度
x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
plt.scatter(x, y)

# 第二天,15 輛汽車的年齡和速度
x = np.array([2,2,8,1,15,8,12,9,7,3,11,4,7,14,12])
y = np.array([100,105,84,105,90,99,90,95,94,100,79,112,91,80,85])
plt.scatter(x, y)

plt.show()

結果

自己動手試一試 »

注意:這兩個圖以兩種不同的顏色繪製,預設是藍色和橙色。您將在本章後面學習如何更改顏色。

透過比較這兩個圖,我認為可以安全地說它們都得出了相同的結論:汽車越新,開得越快。



顏色

您可以使用 colorc 引數為每個散點圖設定自己的顏色。

示例

設定標記的自定義顏色

import matplotlib.pyplot as plt
import numpy as np

x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
plt.scatter(x, y, color = 'hotpink')

x = np.array([2,2,8,1,15,8,12,9,7,3,11,4,7,14,12])
y = np.array([100,105,84,105,90,99,90,95,94,100,79,112,91,80,85])
plt.scatter(x, y, color = '#88c999')

plt.show()

結果

自己動手試一試 »

為每個點著色

您還可以透過將顏色陣列用作 c 引數的值來為每個點設定特定的顏色。

注意:對於此操作,您不能使用 color 引數,只能使用 c 引數。

示例

設定標記的自定義顏色

import matplotlib.pyplot as plt
import numpy as np

x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
colors = np.array(["red","green","blue","yellow","pink","black","orange","purple","beige","brown","gray","cyan","magenta"])

plt.scatter(x, y, c=colors)

plt.show()

結果

自己動手試一試 »

顏色對映

Matplotlib 模組有許多可用的顏色對映。

顏色對映就像一個顏色列表,其中每種顏色都有一個從 0 到 100 的值。

這是一個顏色對映的示例

此顏色對映稱為“viridis”,正如您所見,它從 0(紫色)到 100(黃色)不等。

如何使用顏色對映

您可以使用關鍵字引數 cmap 並指定顏色對映的名稱來設定顏色對映,在本例中為 'viridis',這是 Matplotlib 中可用的內建顏色對映之一。

此外,您需要建立一個包含值(從 0 到 100)的陣列,為散點圖中的每個點分配一個值。

示例

建立一個顏色陣列,並在散點圖中指定顏色對映

import matplotlib.pyplot as plt
import numpy as np

x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
colors = np.array([0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100])

plt.scatter(x, y, c=colors, cmap='viridis')

plt.show()

結果

自己動手試一試 »

您可以透過包含 plt.colorbar() 語句來在繪圖中包含顏色對映。

示例

包含實際的顏色對映

import matplotlib.pyplot as plt
import numpy as np

x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
colors = np.array([0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100])

plt.scatter(x, y, c=colors, cmap='viridis')

plt.colorbar()

plt.show()

結果

自己動手試一試 »

可用的顏色對映

您可以選擇任何內建的顏色對映。

名稱   Reverse
Accent 試一試 »   Accent_r 試一試 »
Blues 試一試 »   Blues_r 試一試 »
BrBG 試一試 »   BrBG_r 試一試 »
BuGn 試一試 »   BuGn_r 試一試 »
BuPu 試一試 »   BuPu_r 試一試 »
CMRmap 試一試 »   CMRmap_r 試一試 »
Dark2 試一試 »   Dark2_r 試一試 »
GnBu 試一試 »   GnBu_r 試一試 »
Greens 試一試 »   Greens_r 試一試 »
Greys 試一試 »   Greys_r 試一試 »
OrRd 試一試 »   OrRd_r 試一試 »
Oranges 試一試 »   Oranges_r 試一試 »
PRGn 試一試 »   PRGn_r 試一試 »
Paired 試一試 »   Paired_r 試一試 »
Pastel1 試一試 »   Pastel1_r 試一試 »
Pastel2 試一試 »   Pastel2_r 試一試 »
PiYG 試一試 »   PiYG_r 試一試 »
PuBu 試一試 »   PuBu_r 試一試 »
PuBuGn 試一試 »   PuBuGn_r 試一試 »
PuOr 試一試 »   PuOr_r 試一試 »
PuRd 試一試 »   PuRd_r 試一試 »
Purples 試一試 »   Purples_r 試一試 »
RdBu 試一試 »   RdBu_r 試一試 »
RdGy 試一試 »   RdGy_r 試一試 »
RdPu 試一試 »   RdPu_r 試一試 »
RdYlBu 試一試 »   RdYlBu_r 試一試 »
RdYlGn 試一試 »   RdYlGn_r 試一試 »
Reds 試一試 »   Reds_r 試一試 »
Set1 試一試 »   Set1_r 試一試 »
Set2 試一試 »   Set2_r 試一試 »
Set3 試一試 »   Set3_r 試一試 »
Spectral 試一試 »   Spectral_r 試一試 »
Wistia 試一試 »   Wistia_r 試一試 »
YlGn 試一試 »   YlGn_r 試一試 »
YlGnBu 試一試 »   YlGnBu_r 試一試 »
YlOrBr 試一試 »   YlOrBr_r 試一試 »
YlOrRd 試一試 »   YlOrRd_r 試一試 »
afmhot 試一試 »   afmhot_r 試一試 »
autumn 試一試 »   autumn_r 試一試 »
binary 試一試 »   binary_r 試一試 »
bone 試一試 »   bone_r 試一試 »
brg 試一試 »   brg_r 試一試 »
bwr 試一試 »   bwr_r 試一試 »
cividis 試一試 »   cividis_r 試一試 »
cool 試一試 »   cool_r 試一試 »
coolwarm 試一試 »   coolwarm_r 試一試 »
copper 試一試 »   copper_r 試一試 »
cubehelix 試一試 »   cubehelix_r 試一試 »
旗幟 試一試 »   flag_r 試一試 »
gist_earth 試一試 »   gist_earth_r 試一試 »
gist_gray 試一試 »   gist_gray_r 試一試 »
gist_heat 試一試 »   gist_heat_r 試一試 »
gist_ncar 試一試 »   gist_ncar_r 試一試 »
gist_rainbow 試一試 »   gist_rainbow_r 試一試 »
gist_stern 試一試 »   gist_stern_r 試一試 »
gist_yarg 試一試 »   gist_yarg_r 試一試 »
gnuplot 試一試 »   gnuplot_r 試一試 »
gnuplot2 試一試 »   gnuplot2_r 試一試 »
gray 試一試 »   gray_r 試一試 »
hot 試一試 »   hot_r 試一試 »
hsv 試一試 »   hsv_r 試一試 »
inferno 試一試 »   inferno_r 試一試 »
jet 試一試 »   jet_r 試一試 »
magma 試一試 »   magma_r 試一試 »
nipy_spectral 試一試 »   nipy_spectral_r 試一試 »
ocean 試一試 »   ocean_r 試一試 »
pink 試一試 »   pink_r 試一試 »
plasma 試一試 »   plasma_r 試一試 »
prism 試一試 »   prism_r 試一試 »
rainbow 試一試 »   rainbow_r 試一試 »
seismic 試一試 »   seismic_r 試一試 »
spring 試一試 »   spring_r 試一試 »
summer 試一試 »   summer_r 試一試 »
tab10 試一試 »   tab10_r 試一試 »
tab20 試一試 »   tab20_r 試一試 »
tab20b 試一試 »   tab20b_r 試一試 »
tab20c 試一試 »   tab20c_r 試一試 »
地形 試一試 »   terrain_r 試一試 »
twilight 試一試 »   twilight_r 試一試 »
twilight_shifted 試一試 »   twilight_shifted_r 試一試 »
viridis 試一試 »   viridis_r 試一試 »
winter 試一試 »   winter_r 試一試 »

大小

您可以使用 s 引數更改點的大小。

與顏色類似,請確保用於大小的陣列與 x 軸和 y 軸的陣列長度相同。

示例

設定標記的自定義大小

import matplotlib.pyplot as plt
import numpy as np

x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
sizes = np.array([20,50,100,200,500,1000,60,90,10,300,600,800,75])

plt.scatter(x, y, s=sizes)

plt.show()

結果

自己動手試一試 »

透明度

您可以使用 alpha 引數調整點的透明度。

與顏色類似,請確保用於大小的陣列與 x 軸和 y 軸的陣列長度相同。

示例

設定標記的自定義大小

import matplotlib.pyplot as plt
import numpy as np

x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
sizes = np.array([20,50,100,200,500,1000,60,90,10,300,600,800,75])

plt.scatter(x, y, s=sizes, alpha=0.5)

plt.show()

結果

自己動手試一試 »

結合顏色、大小和透明度

您可以結合使用顏色對映和不同大小的點。如果點的透明度很高,這將視覺化效果最好。

示例

建立包含 100 個 x 點、y 點、顏色和大小值的隨機陣列

import matplotlib.pyplot as plt
import numpy as np

x = np.random.randint(100, size=(100))
y = np.random.randint(100, size=(100))
colors = np.random.randint(100, size=(100))
sizes = 10 * np.random.randint(100, size=(100))

plt.scatter(x, y, c=colors, s=sizes, alpha=0.5, cmap='nipy_spectral')

plt.colorbar()

plt.show()

結果

自己動手試一試 »

×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援