[PYTHON] matplotlib의 오버레이 imshow 플롯
PYTHONmatplotlib의 오버레이 imshow 플롯
차이를 쉽게 볼 수 있도록 동일한 imshow 음모에 대해 서로 다른 두 세트의 데이터를 비교하고 싶습니다. 내 첫 번째 본능은 색상 맵의 색상을 투명하게 만드는 것입니다 (특히 낮은 값). 그러나이 작업을 수행 할 수 없었습니다.
from matplotlib.colors import colorConverter
import matplotlib.pyplot as plt
import numpy as np
# create dummy data
zvals = np.random.rand(100,100)*10-5
zvals2 = np.random.rand(100,100)*10-5
# generate the transparent colors
color1 = colorConverter.to_rgba('white',alpha=0.0)
color2 = colorConverter.to_rgba('black',alpha=0.8)
# make the colormaps
cmap1 = mpl.colors.LinearSegmentedColormap.from_list('my_cmap',['green','blue'],256)
cmap2 = mpl.colors.LinearSegmentedColormap.from_list('my_cmap2',[color1,color2],256)
img2 = plt.imshow(zvals,interpolation='nearest',cmap=cmap1,origin='lower')
img3 = plt.imshow(zvals2,interpolation='nearest',cmap=cmap2,origin='lower')
plt.show()
오류는 없지만 두 번째 플롯의 흰색과 검은 색은 투명성을 나타내지 않습니다. 나는 또한 정상적인 plt.plot 상황에서 색상을 설정하기 위해 colorConverter 메소드를 시도하고 올바른 색상이 표시되었지만 색상도 투명하지 않게되었습니다.
imshow 플롯을 오버레이 / 비교하는 방법에 대한 추가 조언은 많은 도움이됩니다.
해결법
-
==============================
1.imshow 명령에서 alpha 인수를 설정할 수 있습니다.
imshow 명령에서 alpha 인수를 설정할 수 있습니다.
귀하의 예제에서, img3 = plt.imshow (zvals2, interpolation = 'nearest', cmap = cmap2, origin = 'lower', alpha = 0.6)
해명 해줘서 고마워. 다음은 할 수있는 일에 대한 설명입니다.
다음은 코드를 사용하는 예제입니다.
from matplotlib.colors import colorConverter import matplotlib.pyplot as plt import numpy as np import matplotlib as mpl # create dummy data zvals = np.ones((100,100))# np.random.rand(100,100)*10-5 zvals2 = np.random.rand(100,100)*10-5 # generate the colors for your colormap color1 = colorConverter.to_rgba('white') color2 = colorConverter.to_rgba('black') # make the colormaps cmap1 = mpl.colors.LinearSegmentedColormap.from_list('my_cmap',['green','blue'],256) cmap2 = mpl.colors.LinearSegmentedColormap.from_list('my_cmap2',[color1,color2],256) cmap2._init() # create the _lut array, with rgba values # create your alpha array and fill the colormap with them. # here it is progressive, but you can create whathever you want alphas = np.linspace(0, 0.8, cmap2.N+3) cmap2._lut[:,-1] = alphas img2 = plt.imshow(zvals, interpolation='nearest', cmap=cmap1, origin='lower') img3 = plt.imshow(zvals2, interpolation='nearest', cmap=cmap2, origin='lower') plt.show()
from https://stackoverflow.com/questions/10127284/overlay-imshow-plots-in-matplotlib by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 판다에서 주어진 범위 내에서 임의의 날짜 생성하기 (0) | 2018.11.13 |
---|---|
[PYTHON] 두 개의 관련 목록을 섞는 더 좋은 방법 (0) | 2018.11.13 |
[PYTHON] matplotlib 색상 맵에서 특정 값의 색상을 재정의하는 방법 (0) | 2018.11.13 |
[PYTHON] Django에서 save를 호출하기 전에 모델이 변경되었는지 검색합니다. (0) | 2018.11.13 |
[PYTHON] 파이썬을 사용하여 JSON을 파싱하는 동안 'module'객체에 'loads'속성이 없습니다. (0) | 2018.11.13 |