programing

산점도:산란을 위한 lib 색상 막대

muds 2023. 7. 25. 21:23
반응형

산점도:산란을 위한 lib 색상 막대

저는 x,y,c의 3가지 플롯 파라미터를 가진 데이터로 작업하고 있습니다.산점도에 대한 사용자 정의 색상 값은 어떻게 생성합니까?

예제를 확장하여 수행하려고 합니다.

import matplotlib
import matplotlib.pyplot as plt
cm = matplotlib.cm.get_cmap('RdYlBu')
colors=[cm(1.*i/20) for i in range(20)]
xy = range(20)
plt.subplot(111)
colorlist=[colors[x/2] for x in xy] #actually some other non-linear relationship
plt.scatter(xy, xy, c=colorlist, s=35, vmin=0, vmax=20)
plt.colorbar()
plt.show()

하지만 결과는TypeError: You must first set_array for mappable

산점도 1의 matplotlib 문서에서:

cmap은 c가 플로트 배열인 경우에만 사용됩니다.

따라서 컬러리스트는 현재처럼 튜플 목록이 아닌 플로트 목록이어야 합니다. plt.colorbar()는 plt.scatter()가 반환하는 CircleCollection과 같은 표시 가능한 개체를 원합니다.그러면 vmin 및 vmax가 컬러바의 한계를 제어할 수 있습니다.vmin/vmax 외부의 개체는 끝점의 색상을 가져옵니다.

이것은 당신에게 어떤 효과가 있습니까?

import matplotlib.pyplot as plt
cm = plt.cm.get_cmap('RdYlBu')
xy = range(20)
z = xy
sc = plt.scatter(xy, xy, c=z, vmin=0, vmax=20, s=35, cmap=cm)
plt.colorbar(sc)
plt.show()

Image Example

다음은 컬러바를 추가하는 OOP 방법입니다.

fig, ax = plt.subplots()
im = ax.scatter(x, y, c=c)
fig.colorbar(im, ax=ax)

두 변수와 세 번째 변수의 색상을 사용하여 산란하고자 한다면 Altair를 선택하는 것이 좋습니다.

데이터 집합 만들기

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

df = pd.DataFrame(40*np.random.randn(10, 3), columns=['A', 'B','C'])

알테어 플롯

from altair import *
Chart(df).mark_circle().encode(x='A',y='B', color='C').configure_cell(width=200, height=150)

줄거리.

enter image description here

언급URL : https://stackoverflow.com/questions/6063876/matplotlib-colorbar-for-scatter

반응형