一、contour概述
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-5, 5, 0.1)
y = np.arange(-5, 5, 0.1)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))
plt.contour(X, Y, Z)
plt.show()
contour是一種數據可視化的方法,用等高線的方式來表現數據。通俗地說,可以把一張等高線地圖看成一張地形圖,山峰頂的輪廓線就像是一個二維函數值等於某個特定值的集合。因此contour也適用於二維圖像中的各種數據分布,如熱圖、電勢圖等。
在matplotlib中,可以使用plt.contour(X,Y,Z)來繪製等高線圖,其中X,Y為橫縱坐標,Z為等高線數據。
二、contourf的使用
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-5, 5, 0.1)
y = np.arange(-5, 5, 0.1)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X ** 2 + Y ** 2))
plt.contourf(X, Y, Z)
plt.show()
在上一個例子中,我們繪製的是等高線線條,那麼怎麼填充其中的顏色呢?答案就是使用contourf函數。
plt.contourf(X,Y,Z)的參數和plt.contour相同。它會將數據區間分割無數份,每份之間的顏色都有差別,從而實現等高線圖的填充。
三、contour使用colormap調整顏色
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-5, 5, 0.1)
y = np.arange(-5, 5, 0.1)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X ** 2 + Y ** 2))
plt.contourf(X, Y, Z, cmap='coolwarm')
plt.colorbar()
plt.show()
使用plt.contourf繪製的等高線圖默認採用等間距的顏色來填充,但有時我們希望通過顏色的變化來更好地表達數據的變化。這時候可以使用colormap。
colormap是一組顏色,旨在通過漸變來改變顏色從而表示數據的變化。我們可以通過在plt.contourf中設置cmap參數來調整顏色。比如colormap中blue和red的搭配可以用coolwarm。
四、contour的一些參數介紹
1. levels
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-5, 5, 0.1)
y = np.arange(-5, 5, 0.1)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X ** 2 + Y ** 2))
plt.contourf(X, Y, Z, levels=10)
plt.show()
在plt.contourf中,可以通過levels參數來控制等高線的數量。默認為10,也可以手動指定。
2. alpha
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-5, 5, 0.1)
y = np.arange(-5, 5, 0.1)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X ** 2 + Y ** 2))
plt.contourf(X, Y, Z, alpha=0.5)
plt.show()
在plt.contourf中,可以通過alpha參數來控制等高線圖的透明度。數值範圍為[0,1],0為完全透明,1為不透明。
3. linewidths
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-5, 5, 0.1)
y = np.arange(-5, 5, 0.1)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X ** 2 + Y ** 2))
plt.contour(X, Y, Z, linewidths=2)
plt.show()
在plt.contour中,可以通過linewidths參數來控制等高線的線條粗細。默認值為1。
4. linestyles
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-5, 5, 0.1)
y = np.arange(-5, 5, 0.1)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X ** 2 + Y ** 2))
plt.contour(X,Y,Z, linestyles='dashed')
plt.show()
在plt.contour中,可以通過linestyles參數來控制等高線的線條風格。可選參數有:-, –, -., :等。
總結
本文探究了matplotlib中contour的使用,包括繪製等高線圖、填充等高線圖、通過colormap調整顏色、不同參數調整等高線圖的樣式等內容。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/192619.html