本文簡要介紹 python 語言中 matplotlib.axes.Axes.contour
的用法。
-
繪製等高線。
調用簽名:
contour([X, Y,] Z, [levels], **kwargs)
contour
和contourf
分別繪製輪廓線和填充輪廓。除非另有說明,兩個版本的函數簽名和返回值是相同的。- 參數:
- X, Y 類似數組,可選
-
Z
中值的坐標。X
和Y
必須都是 2D 且具有與Z
相同的形狀(例如,通過numpy.meshgrid
創建),或者它們必須都是 1-D 使得len(X) == N
是Z
中的列數和len(Y) == M
是Z
中的行數。X
和Y
都必須單調排序。如果沒有給出,它們被假定為整數索引,即
X = range(N)
,Y = range(M)
。 - Z (M,N) 類數組
-
繪製輪廓的高度值。 Color-mapping 由
cmap
、norm
、vmin
和vmax
控製。 - levels int 或類似數組,可選
-
確定等高線/區域的數量和位置。
如果 int
n
,請使用MaxNLocator
,它會嘗試在Z
的最小和最大數值之間自動選擇不超過n+1
"nice" 等高線級別。如果是類似數組,則在指定級別繪製等高線。這些值必須按升序排列。
- 返回:
- 其他參數:
- corner_mask 布爾值,默認值:
rcParams["contour.corner_mask"]
(默認值:True
) -
啟用/禁用角掩蔽,僅當
Z
是掩蔽數組時才有效。如果False
,則任何接觸遮罩點的四邊形都會被遮罩。如果True
,隻有最接近這些點的四邊形的三角形角總是被屏蔽掉,其他包含三個未屏蔽點的三角形角像往常一樣被輪廓化。 - colors 顏色字符串或顏色序列,可選
-
級別的顏色,即
contour
的線條和contourf
的區域。該序列按升序循環用於各個級別。如果序列比級別數短,則重複。
作為一種快捷方式,可以使用單一顏色字符串代替單元素列表,即
'red'
而不是['red']
以使用相同顏色為所有級別著色。此快捷方式僅適用於顏色字符串,不適用於其他指定顏色的方式。默認情況下(值
None
),將使用由cmap
指定的顏色圖。 - alpha 浮點數,默認值:1
-
Alpha 混合值,介於 0(透明)和 1(不透明)之間。
- cmap str 或
Colormap
,默認值:rcParams["image.cmap"]
(默認值:'viridis'
) -
用於將標量數據映射到顏色的顏色圖實例或注冊的顏色圖名稱。
如果設置了
colors
,則忽略此參數。 - norm str 或
Normalize
,可選 -
在使用
cmap
映射到顏色之前,用於將標量數據縮放到 [0, 1] 範圍的歸一化方法。默認情況下,使用線性縮放,將最低值映射到 0,將最高值映射到 1。如果給出,這可以是以下之一:
-
Normalize
或其子類之一的實例(請參閱顏色圖歸一化)。 -
比例名稱,即 "linear"、"log"、"symlog"、"logit" 等之一。有關可用比例的列表,請調用
matplotlib.scale.get_scale_names()
。在這種情況下,會動態生成並實例化合適的Normalize
子類。
如果設置了
colors
,則忽略此參數。 -
- vmin, vmax 浮點數,可選
-
當使用標量數據並且沒有顯式
norm
時,vmin
和vmax
定義顏色圖覆蓋的數據範圍。默認情況下,顏色圖覆蓋所提供數據的完整值範圍。當給出norm
實例時,使用vmin
/vmax
是錯誤的(但使用str
norm
名稱和vmin
/vmax
是可以接受的)。如果未給出
vmin
或vmax
,則默認顏色縮放基於levels
。如果設置了
colors
,則忽略此參數。 - origin {
None
, 'upper', 'lower', 'image'},默認值:無 -
通過指定
Z[0, 0]
的位置來確定Z
的方向和準確位置。這僅在沒有給出X
、Y
的情況下才有意義。-
None
:Z[0, 0]
位於左下角的 X=0、Y=0 處。 -
'lower':
Z[0, 0]
在左下角的 X=0.5,Y=0.5 處。 -
'upper':
Z[0, 0]
在左上角的 X=N+0.5,Y=0.5 處。 -
'image':使用來自
rcParams["image.origin"]
的值(默認值:'upper'
)。
-
- extent (x0, x1, y0, y1),可選
-
如果
origin
不是None
,則extent
被解釋為imshow
:它給出了外部像素邊界。在這種情況下,Z[0, 0] 的位置是像素的中心,而不是角落。如果origin
是None
,那麽 (x0
,y0
) 是 Z[0, 0] 的位置,並且 (x1
,y1
) 是 Z[-1, - 1]。如果在對輪廓的調用中指定了
X
和Y
,則忽略此參數。 - locator ticker.Locator 子類,可選
-
如果未通過
levels
明確給出,則定位器用於確定輪廓級別。默認為MaxNLocator
。 - extend {'neither', 'both', 'min', 'max'},默認:'neither'
-
確定
levels
範圍之外的值的contourf
著色。如果是'neither',則
levels
範圍之外的值不著色。如果是'min', 'max' 或'both',為levels
範圍的下方、上方或下方和上方的值著色。低於
min(levels)
和高於max(levels)
的值映射到Colormap
的低於/高於值。請注意,默認情況下,大多數顏色圖沒有專門的顏色,因此上值和下值是顏色圖的邊值。您可能希望使用Colormap.set_under
和Colormap.set_over
顯式設置這些值。注意如果現有
QuadContourSet
的顏色圖屬性發生更改,則不會收到通知。因此,修改顏色圖後需要顯式調用QuadContourSet.changed()
。如果將顏色條分配給QuadContourSet
,則可以省略顯式調用,因為它在內部調用QuadContourSet.changed()
。例子:
x = np.arange(1, 10) y = x.reshape(-1, 1) h = x * y cs = plt.contourf(h, levels=[10, 30, 50], colors=['#808080', '#A0A0A0', '#C0C0C0'], extend='both') cs.cmap.set_over('red') cs.cmap.set_under('blue') cs.changed()
- xunits, yunits 注冊單位,可選
-
通過指定
matplotlib.units.ConversionInterface
的實例來覆蓋軸單位。 - antialiased 布爾型,可選
-
啟用抗鋸齒,覆蓋默認值。對於填充輪廓,默認值為
False
。對於線條輪廓,它取自rcParams["lines.antialiased"]
(默認值:True
)。 - nchunk int >= 0,可選
-
如果為 0,則不細分域。指定一個正整數以將域劃分為
nchunk
通過nchunk
四邊形的子域。分塊減少了輪廓算法生成的多邊形的最大長度,從而減少了傳遞到後端的渲染工作量,並且需要的 RAM 也略少。但是,它可以根據後端、antialiased
標誌和alpha
的值在塊邊界引入渲染工件。 - linewidths 浮點數或類似數組,默認值:
rcParams["contour.linewidth"]
(默認值:None
) -
Only applies to
contour
。等高線的線寬。
如果是數字,則所有級別都將使用此線寬繪製。
如果是一個序列,將按照指定的順序繪製升序級別的線寬。
如果沒有,這將回退到
rcParams["lines.linewidth"]
(默認值:1.5
)。 - linestyles {
None
, 'solid', 'dashed', 'dashdot', 'dotted'},可選 -
Only applies to
contour
。如果
linestyles
為None
,則默認值為 'solid' ,除非線條是單色的。在這種情況下,負輪廓將從negative_linestyles
參數中獲取線條樣式。linestyles
也可以是上述字符串的可迭代對象,指定要使用的一組線型。如果這個迭代比輪廓級別的數量短,它將根據需要重複。 - negative_linestyles {
None
, 'solid', 'dashed', 'dashdot', 'dotted'},可選 -
Only applies to
contour
。如果
linestyles
是None
並且線條是單色的,則此參數指定負輪廓的線條樣式。如果
negative_linestyles
是None
,則默認值取自rcParams["contour.negative_linestyles"]
。negative_linestyles
也可以是上述字符串的可迭代對象,指定要使用的一組線型。如果這個迭代比輪廓級別的數量短,它將根據需要重複。 - hatches 列表[str],可選
-
Only applies to
contourf
。用於填充區域的交叉影線圖案列表。如果沒有,則不會向輪廓添加陰影。陰影僅在 PostScript、PDF、SVG 和 Agg 後端中受支持。
- algorithm {'mpl2005'、'mpl2014'、'serial', 'threaded'},可選
-
使用哪種輪廓算法來計算輪廓線和多邊形。這些算法在ContourPy中實現,請參閱ContourPy documentation以獲取更多信息。
默認值取自
rcParams["contour.algorithm"]
(默認值:'mpl2014'
)。 - clip_path
Patch
或Path
或TransformedPath
-
設置剪輯路徑。請參閱
set_clip_path
。3.8 版中的新函數。
- data 可索引對象,可選
-
如果給定,所有參數也接受一個字符串
s
,它被解釋為data[s]
(除非這引發異常)。
- corner_mask 布爾值,默認值:
注意
-
contourf
與 MATLAB 版本的不同之處在於它不繪製多邊形邊。要繪製邊,請通過調用contour
添加線條輪廓。 -
contourf
填充頂部閉合的區間;也就是說,對於邊界z1
和z2
,填充區域為:z1 < Z <= z2
除了最低間隔,它在兩邊都是封閉的(即它包括最低值)。
-
contour
和contourf
使用 marching squares 算法來計算輪廓位置。更多信息可以在ContourPy documentation中找到。
用法
Axes.contour(*args, data=None, **kwargs)
相關用法
- Python matplotlib Axes.contourf用法及代碼示例
- Python matplotlib Axes.get_legend_handles_labels用法及代碼示例
- Python matplotlib Axes.hist用法及代碼示例
- Python matplotlib Axes.step用法及代碼示例
- Python matplotlib Axes.plot用法及代碼示例
- Python matplotlib Axes.semilogx用法及代碼示例
- Python matplotlib Axes.semilogy用法及代碼示例
- Python matplotlib Axes.inset_axes用法及代碼示例
- Python matplotlib Axes.axis用法及代碼示例
- Python matplotlib Axes.barbs用法及代碼示例
- Python matplotlib Axes.tripcolor用法及代碼示例
- Python matplotlib Axes.set_prop_cycle用法及代碼示例
- Python matplotlib Axes.axline用法及代碼示例
- Python matplotlib Axes.tick_params用法及代碼示例
- Python matplotlib Axes.axvspan用法及代碼示例
- Python matplotlib Axes.tricontourf用法及代碼示例
- Python matplotlib Axes.locator_params用法及代碼示例
- Python matplotlib Axes.set_ylim用法及代碼示例
- Python matplotlib Axes.loglog用法及代碼示例
- Python matplotlib Axes.text用法及代碼示例
- Python matplotlib Axes.boxplot用法及代碼示例
- Python matplotlib Axes.triplot用法及代碼示例
- Python matplotlib Axes.tricontour用法及代碼示例
- Python matplotlib Axes.arrow用法及代碼示例
- Python matplotlib Axes.set_xlim用法及代碼示例
注:本文由純淨天空篩選整理自skytowner.com大神的英文原創作品 matplotlib.axes.Axes.contour。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。