Matplotlib에서 산점도에 대한 사용자 정의 이산 색상 막대를 어떻게 만들 수 있습니까?

Patricia Arquette
풀어 주다: 2024-10-25 06:37:02
원래의
562명이 탐색했습니다.

How can you create a custom discrete colorbar for a scatterplot in Matplotlib?

산점도를 위한 Matplotlib 컬러바 이산화

산점도에서 연속 컬러바는 이산 데이터를 표현하는 데 항상 충분하지 않을 수 있습니다. 기본 패턴을 효과적으로 시각화하려면 개별 컬러바를 만드는 것이 중요합니다.

이를 달성하기 위해 Matplotlib의 BoundaryNorm 클래스를 산점도의 정규화 도구로 활용할 수 있습니다. 이렇게 하면 고유한 값이 고유한 색상으로 표시됩니다.

컬러바를 사용자 정의할 때 특정 값을 회색으로 표시하도록 설정하려고 할 때 한 가지 문제가 발생합니다. 이 문제를 해결하려면 색상 항목을 추출하고 재정의하여 기존 색상 팔레트를 수정할 수 있습니다.

<code class="python">cmaplist = [cmap(i) for i in range(cmap.N)]
# force the first color entry to be grey
cmaplist[0] = (.5, .5, .5, 1.0)</code>
로그인 후 복사

색상 팔레트를 수정한 후 사용자 정의 색상맵을 생성할 수 있습니다. 그런 다음 BoundaryNorm을 사용하여 비닝을 정의하고 이에 따라 데이터를 정규화합니다.

<code class="python">cmap = mpl.colors.LinearSegmentedColormap.from_list(
    'Custom cmap', cmaplist, cmap.N)
bounds = np.linspace(0, 20, 21)
norm = mpl.colors.BoundaryNorm(bounds, cmap.N)</code>
로그인 후 복사

수정된 색상 팔레트와 정규화가 적용되면 산점도를 렌더링할 수 있습니다. 개별 경계와 해당 색상을 표시하도록 사용자 정의된 컬러바를 수용하기 위해 별도의 축이 추가됩니다.

<code class="python">scat = ax.scatter(x, y, c=tag, cmap=cmap, norm=norm)
ax2 = fig.add_axes([0.95, 0.1, 0.03, 0.8])
cb = plt.colorbar.ColorbarBase(ax2, cmap=cmap, norm=norm,
    spacing='proportional', ticks=bounds, boundaries=bounds, format='%1i')</code>
로그인 후 복사

이 접근 방식을 사용하면 산점도 내에서 이산 데이터를 효과적으로 전달하는 사용자 정의 이산 컬러바를 생성할 수 있습니다. 기본 패턴을 보다 명확하게 시각적으로 표현합니다.

위 내용은 Matplotlib에서 산점도에 대한 사용자 정의 이산 색상 막대를 어떻게 만들 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!