詳解matplotlib中的plt.contourf

一、plt.contourf簡介

plt.contourf是matplotlib中一個非常重要的函數,用於繪製等高線圖,其中f表示filled,繪製的顏色由函數值所表示的「高度」決定,通常用於表示2D函數的等值線分布。

二、plt.contourf的參數

plt.contourf函數具有多個參數,其中x,y分別表示x軸和y軸上的坐標數組;Z表示在這些坐標上對應的函數值;levels代表要繪製的等值線的高度;cmap是顏色選擇;alpha是透明度;linewidths表示等值線的寬度等等。實際上,plt.contourf函數可以繪製出更加高級的等高線圖,但本文著重介紹最基礎的內容。

# 簡單使用示例
plt.contourf(x, y, z) # 繪製等高線圖,只傳入x、y和z三個參數
plt.colorbar() # 添加顏色條

本例中的x、y、z數組均為二維數組,其形狀分別為N行M列。使用時需要保證x和y的形狀和z相同。

三、plt.contourf的應用場景

1. 表示2D函數的等值線分布

對於一個二維函數f(x, y),我們可以通過plt.contourf函數將其等值線畫出來,其中x和y是變數,z=f(x,y)。

import numpy as np
import matplotlib.pyplot as plt

# 定義函數
def f(x, y):
    return np.sin(np.sqrt(x ** 2 + y ** 2))

# 生成網格數據
x = np.linspace(-10, 10, 500) # x坐標
y = np.linspace(-10, 10, 500) # y坐標
X, Y = np.meshgrid(x, y) # 生成二維網格數據

z = f(X, Y) # 計算得到z值

# 繪製圖像
plt.contourf(X, Y, z, cmap='cool') # 繪製等值面
plt.colorbar() # 添加顏色條
plt.show()

運行結果如下圖所示,等值線的顏色隨著函數值的變化而變換,越靠近最高點顏色越亮。

2. 地圖繪製

在地理信息學中,人們常常需要繪製各種特徵地圖,比如地形高度圖、氣象預報圖等。利用plt.contourf函數,我們可以非常輕鬆地實現這一目標。

import numpy as np
import matplotlib.pyplot as plt

# 生成網格數據
x = np.linspace(0, 10, 50)
y = np.linspace(0, 10, 50)
X, Y = np.meshgrid(x, y)

# 定義一個簡單的高度分布函數,這裡是正弦函數
z = 2 * np.sin(X) + 3 * np.sin(Y)

# 繪製等高線圖
plt.contourf(X, Y, z, cmap='cool')
plt.colorbar()

# 添加地圖信息
plt.title('等高線地圖')
plt.xlabel('經度')
plt.ylabel('緯度')

plt.grid(True)

plt.show()

運行結果如下圖所示,色彩分布從深紅到淺綠,更好地顯示了地勢高低差異。使用等高線還可以更加準確地描述地勢,從而更好地預測地圖上海拔高度的走勢。

3. 三維數據的可視化

plt.contourf函數還可以繪製三維數據的可視化效果。在這裡,我們可以設置z值作為顏色來表示數據的變化醫,並用不同的顏色填充不同的元素。

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# 生成網格數據
x = np.linspace(-10, 10, 50)
y = np.linspace(-10, 10, 50)
X, Y = np.meshgrid(x, y)

# 定義一個三維數據(X, Y, Z),這裡使用正弦函數
Z = np.sin(np.sqrt(X ** 2 + Y ** 2))

# 繪製三維圖像
fig = plt.figure()
ax = fig.gca(projection='3d') # 創建3D坐標系

surf = ax.plot_surface(X, Y, Z, cmap='cool') # 繪製表面
plt.colorbar(surf)

plt.show()

運行結果如下圖所示,顏色鮮明,營造出充滿科技感的立體畫面,使數據的呈現更加形象生動了。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/293132.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-25 18:39
下一篇 2024-12-25 18:39

相關推薦

  • Python最強大的製圖庫——Matplotlib

    Matplotlib是Python中最強大的數據可視化工具之一,它提供了海量的製圖、繪圖、繪製動畫的功能,通過它可以輕鬆地展示數據的分布、比較和趨勢。下面將從多個方面對Matplo…

    編程 2025-04-29
  • Python三大:NumPy、Pandas、matplotlib

    本文將詳細介紹三大Python數據處理及可視化庫——NumPy、Pandas以及matplotlib,為讀者提供從基礎使用到應用場景的全面掌握。 一、NumPy NumPy是Pyt…

    編程 2025-04-27
  • Python畫圖:Matplotlib的使用

    Matplotlib是Python中最常用的畫圖庫之一。它可以輕鬆地創建各種類型的圖表,包括直方圖、散點圖、線圖、餅圖等等。本文將從以下幾個方面對Matplotlib的使用進行詳細…

    編程 2025-04-27
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁碟中。在執行sync之前,所有的文件系統更新將不會立即寫入磁碟,而是先緩存在內存…

    編程 2025-04-25
  • 神經網路代碼詳解

    神經網路作為一種人工智慧技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網路的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網路模型編寫的代碼技術。 一、神經網…

    編程 2025-04-25
  • MPU6050工作原理詳解

    一、什麼是MPU6050 MPU6050是一種六軸慣性感測器,能夠同時測量加速度和角速度。它由三個感測器組成:一個三軸加速度計和一個三軸陀螺儀。這個組合提供了非常精細的姿態解算,其…

    編程 2025-04-25
  • Python安裝OS庫詳解

    一、OS簡介 OS庫是Python標準庫的一部分,它提供了跨平台的操作系統功能,使得Python可以進行文件操作、進程管理、環境變數讀取等系統級操作。 OS庫中包含了大量的文件和目…

    編程 2025-04-25
  • Java BigDecimal 精度詳解

    一、基礎概念 Java BigDecimal 是一個用於高精度計算的類。普通的 double 或 float 類型只能精確表示有限的數字,而對於需要高精度計算的場景,BigDeci…

    編程 2025-04-25
  • Linux修改文件名命令詳解

    在Linux系統中,修改文件名是一個很常見的操作。Linux提供了多種方式來修改文件名,這篇文章將介紹Linux修改文件名的詳細操作。 一、mv命令 mv命令是Linux下的常用命…

    編程 2025-04-25
  • git config user.name的詳解

    一、為什麼要使用git config user.name? git是一個非常流行的分散式版本控制系統,很多程序員都會用到它。在使用git commit提交代碼時,需要記錄commi…

    編程 2025-04-25

發表回復

登錄後才能評論