2014-01-16 2 views
29

matplotlib을 사용하여 파이썬에서 히트 맵 스타일의 시각화를 만들어야하는 경우가 종종 있습니다. Matplotlib은 분명히 똑같은 기능을 제공합니다. pcolor 대신 pcolormesh을 권장하지만 imshowpcolormesh 사이의 차이점은 무엇입니까 (데이터 플로터의 실용적인 관점에서)? 다른 하나를 사용하는 것이 장단점은 무엇입니까? 어떤 시나리오에서 어느 쪽이 확실한 승자가 될까요?imshow를 pcolormesh보다 언제 사용합니까?

답변

32

기본적 imshow은 어레이의 모든 데이터 요소의 크기는 직사각형 그리드 위에 달라질 수 직사각형 요소와 데이터 배열 pcolormesh/pcolor 연관 요소 반면, 동일한 크기로 렌더링되어야하는 것으로 가정한다.

메쉬 요소가 균일 한 경우, imshow "가장 가까운"기본 pcolormesh 디스플레이와 매우 유사합니다 설정 보간 (옵션 XY 인수없이). 차이점은 imshow y 축이 반전되고 (w.r.t. pcolormesh) 가로 세로 비율이 유지되지만 이러한 특성은 pcolormesh 출력처럼 보이도록 변경 될 수 있습니다.

데이터 배열을 셀로 시각화하려는 경우, 특히 직사각형 메쉬가 균일하지 않거나 셀의 경계/모서리를 플롯하려는 경우에 특히 pcolormesh이 더 편리합니다. 그렇지 않으면 imshow이 고정 셀 크기이거나, 종횡비를 유지하거나, 픽셀 보간을 제어하거나, RGB 값을 직접 지정하려는 경우에 더 편리합니다.

+8

+1 비트 추가하기 : y 축의 aspect와 flipping은 imshow (각각 aspect = 'auto'와 'origin ='lower ') 키워드 인자로 쉽게 제어됩니다. 여러분이 언급 한 것 외에도 다른 중요한 차이점은 speed (''imshow''가 훨씬 더 효율적입니다), 셀 가장자리를 표시하는 능력/무능력 (''pcolor''''''pcolormesh''',''imshow'')이 있습니다. ('pcolormesh'는 셀을 모서리에 정렬시키고,'imshow'는 그것들을 중심에 정렬시킵니다. 이것은'extent' kwarg 또는'pcolormesh'에 대한 x와 y 인자에 의해 제어됩니다.) –

+0

또한 ,'pcolormesh'는 사각형 세포에만 국한되지 않습니다. 'x','y' 및'z' 매개 변수를 전달하면 실제로 사변형이 될 수 있습니다. –

+0

추가 정보 주셔서 감사합니다. 나는'imshow'가 더 빠르다고 의심했지만 그것을 시험하는 것을 괴롭히지 않았습니다. 단지'z' 매개 변수를 말할 때'C' 매개 변수를 의미한다고 가정합니다 (즉,'pcolormesh'는 3D 메쉬를 생성 할 수 없습니다). – bogatron