簡體   English   中英

Python Matplotlib Contourf圖

[英]Python matplotlib contourf plot

我對matplotlib和Contourf有一個疑問。

我正在使用matplotlib的最新版本和python3.7。 基本上,我必須對要繪制在相同輪廓圖上但使用不同顏色圖的矩陣進行矩陣處理。 一個重要方面是,例如,如果我們有零個矩陣A和矩陣B,它們的形狀=(10,10),則矩陣A與零不同的位置就是矩陣B不為零的位置,反之亦然。

換句話說,我想以不同的顏色繪制兩個不同的蒙版。

謝謝你的時間。

編輯:

我在這里加一個例子

import numpy
import matplotlib.pyplot as plt

matrixA=numpy.random.randn(10,10).reshape(100,)
matrixB=numpy.random.randn(10,10).reshape(100,)

mask=numpy.random.uniform(10,10)
mask=mask.reshape(100,)

indexA=numpy.where(mask[mask>0.5])[0]
indexB=numpy.where(mask[mask<=0.5])[0]

matrixA_masked=numpy.zeros(100,)
matrixB_masked=numpy.zeros(100,)
matrixA_masked[indexA]=matrixA[indexA]
matrixB_masked[indexB]=matrixB[indexB]

matrixA_masked=matrixA_masked.reshape(100,100)
matrixB_masked=matrixB_masked.reshape(100,100)

x=numpy.linspace(0,10,1)
X,Y = numpy.meshgrid(x,x)
plt.contourf(X,Y,matrixA_masked,colormap='gray')
plt.contourf(X,Y,matrixB_masked,colormap='winter')
plt.show()

我想要的是能夠使用出現在同一圖中的不同顏色圖。 因此,例如在圖中,將有一個分配給輪廓顏色為matrixA的部分(其中發生matrixB時為0),相同的情況下分配給matrixB具有不同的色圖。

在其他工作中,輪廓線圖的每個部分都對應一個矩陣。 我正在繪制機器學習模型的決策面。

我偶然發現了您的代碼中的一些錯誤,因此我創建了自己的數據集。 要在一個繪圖上具有兩個顏色圖,您需要打開一個圖並定義軸:

import numpy
import matplotlib.pyplot as plt

matrixA=numpy.linspace(1,20,100)
matrixA[matrixA >= 10] = numpy.nan
matrixA_2 = numpy.reshape(matrixA,[50,2])

matrixB=numpy.linspace(1,20,100)
matrixB[matrixB <= 10] = numpy.nan
matrixB_2 = numpy.reshape(matrixB,[50,2])

fig,ax = plt.subplots()
a = ax.contourf(matrixA_2,cmap='copper',alpha=0.5,zorder=0)
fig.colorbar(a,ax=ax,orientation='vertical')
b=ax.contourf(matrixB_2,cmap='cool',alpha=0.5,zorder=1)
fig.colorbar(b,ax=ax,orientation='horizontal')
plt.show()

在此處輸入圖片說明

您還將看到我更改了alphazorder

我希望這有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM