當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python matplotlib Axes.contour用法及代碼示例


本文簡要介紹 python 語言中 matplotlib.axes.Axes.contour 的用法。

用法

Axes.contour(*args, data=None, **kwargs)

繪製等高線。

調用簽名:

contour([X, Y,] Z, [levels], **kwargs)

contour contourf 分別繪製輪廓線和填充輪廓。除非另有說明,兩個版本的函數簽名和返回值是相同的。

參數
X, Y 類似數組,可選

Z 中值的坐標。

XY 必須都是 2D 且具有與 Z 相同的形狀(例如,通過 numpy.meshgrid 創建),或者它們必須都是 1-D 使得 len(X) == NZ 中的列數和 len(Y) == MZ 中的行數。

XY 都必須單調排序。

如果沒有給出,它們被假定為整數索引,即 X = range(N)Y = range(M)

Z (M,N) 類數組

繪製輪廓的高度值。 Color-mapping 由 cmapnormvminvmax 控製。

levels int 或類似數組,可選

確定等高線/區域的數量和位置。

如果 int n ,請使用 MaxNLocator ,它會嘗試在 Z 的最小和最大數值之間自動選擇不超過 n+1 "nice" 等高線級別。

如果是類似數組,則在指定級別繪製等高線。這些值必須按升序排列。

返回
QuadContourSet
其他參數
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 時,vminvmax 定義顏色圖覆蓋的數據範圍。默認情況下,顏色圖覆蓋所提供數據的完整值範圍。當給出 norm 實例時,使用 vmin /vmax 是錯誤的(但使用 str norm 名稱和 vmin /vmax 是可以接受的)。

如果未給出 vminvmax ,則默認顏色縮放基於 levels

如果設置了colors,則忽略此參數。

origin { None , 'upper', 'lower', 'image'},默認值:無

通過指定 Z[0, 0] 的位置來確定 Z 的方向和準確位置。這僅在沒有給出 XY 的情況下才有意義。

  • NoneZ[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] 的位置是像素的中心,而不是角落。如果 originNone ,那麽 ( x0 , y0 ) 是 Z[0, 0] 的位置,並且 ( x1 , y1 ) 是 Z[-1, - 1]。

如果在對輪廓的調用中指定了 XY,則忽略此參數。

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

如果 linestylesNone ,則默認值為 'solid' ,除非線條是單色的。在這種情況下,負輪廓將從 negative_linestyles 參數中獲取線條樣式。

linestyles 也可以是上述字符串的可迭代對象,指定要使用的一組線型。如果這個迭代比輪廓級別的數量短,它將根據需要重複。

negative_linestyles { None , 'solid', 'dashed', 'dashdot', 'dotted'},可選

Only applies to contour

如果linestylesNone 並且線條是單色的,則此參數指定負輪廓的線條樣式。

如果 negative_linestylesNone ,則默認值取自 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] (除非這引發異常)。

注意

  1. contourf 與 MATLAB 版本的不同之處在於它不繪製多邊形邊。要繪製邊,請通過調用 contour 添加線條輪廓。

  2. contourf 填充頂部閉合的區間;也就是說,對於邊界 z1z2 ,填充區域為:

    z1 < Z <= z2

    除了最低間隔,它在兩邊都是封閉的(即它包括最低值)。

  3. contour contourf 使用 marching squares 算法來計算輪廓位置。更多信息可以在ContourPy documentation中找到。

相關用法


注:本文由純淨天空篩選整理自skytowner.com大神的英文原創作品 matplotlib.axes.Axes.contour。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。