2016-11-23 1 views
0

contourf를 사용하여 일부 데이터를 그리지 만 투명도 설정시 문제가 있습니다. 채우기와 선의 투명도를 설정할 수 있기를 원하지만 이렇게 할 수는 없습니다.Matplotlib의 윤곽선 투명도/윤곽선 변경

array = np.random.rand(100,100) 

#lonit and latit are latitude and longitude grids from an input dataset 
LONG, LAT = np.meshgrid(lonit, latit) 
longitude,latitude = m(LONG, LAT) 

pp = m.contourf(longitude, latitude, imagelist[0], 50, 
      cmap='YlOrRd', extend="min", alpha = .5) 

plt.show() 

이 출력 : 다음과 같이

내 코드의 단순화 된 버전은 알파가 0.5로 설정에도 불구하고, enter image description here

당신이 볼 수 있듯이, 등고선의 투명성 유지 1. 누군가가 채우기와 같은 투명성을 갖도록 이것을 수정하는 방법을 알고 있습니까? 다른 방법으로는 등고선을 제거하는 것이 효과적 일지 모르지만 시각화가 쉬워 지므로 contourf 메서드가 마음에 든다. (앞서 언급 한 선을 제외하고)

내 목표는 선이 내 플롯에 복잡성을 추가하고 따라서 그들을 보이지 않게 만들거나 제거하고 싶습니다.

미리 감사드립니다.

UPDATE : MORE 그래프 1.0으로 설정 PROBLEM

알파를 표시 : enter image description here

알파 0.1로 설정 : enter image description here

알파 0.6로 설정 True로 설정 평활화 :

pp = m.contourf(longitude, latitude, imagelist[0], 50, 
cmap='YlOrRd', extend="min", alpha = 0.6, antialiased = True) 

enter image description here

이것은 개선되었지만 여전히 제거하지 못했습니다.

+0

'alpha'매개 변수가 둘 다의 투명도를 변경하지 않습니까? – Chr

+0

알파를 더 낮추려고 했습니까? – Inconnu

+0

안녕하십니까, 서로 다른 알파 레벨을 보여주는 더 많은 이미지로 질문을 업데이트했습니다! - 알파 = 0은 투명도가 변경되고 있음을 암시하는 완전히 보이지 않는 플롯을 생성합니다. 어쩌면 등고선을 모두 제거해야하므로 원래 질문에이 옵션을 추가 할 것입니다. –

답변

0

antialiased = True을 사용할 때 계속 표시되는 선은 채워진 윤곽선이 서로 닿지 않기 때문에 실제로는 선이 아니라 빛나는 배경입니다.

하나의 매우 못 생기는 수정은 같은 것을 두 번 반복하지만 레벨이 약간 다를 수 있습니다.

pp1 = m.contourf(longitude, latitude, imagelist[0], 50, cmap='YlOrRd', extend="min", alpha = 0.3, antialiased = True) 
pp2 = m.contourf(longitude, latitude, imagelist[0], 55, cmap='YlOrRd', extend="min", alpha = 0.3, antialiased = True) 

동일한 투명도를 얻으려면 알파 값을 반으로 나눠야합니다. 선은 계속 표시되지만 이전처럼 강하지는 않습니다.