반응형
값이있는 벡터와 1,2,3 등의 클래스 레이블이있는 벡터가 두 개 있습니다.
클래스 1에 속하는 모든 포인트를 빨간색으로, 클래스 2에 파란색으로, 클래스 3에 녹색으로 플로팅하고 싶습니다. 어떻게해야합니까?
해결 방법
받아 들여진 대답은 눈에 띄지 만 특정 색상이나 레이블에 할당되어야하는 클래스 레이블을 지정하려는 경우 다음을 수행 할 수 있습니다. 컬러 바로 약간의 라벨 체조를했지만 플롯 자체를 만드는 것은 멋진 한 줄로 줄어 듭니다. 이것은 sklearn으로 수행 한 분류 결과를 플로팅하는 데 유용합니다. 각 레이블은 (x, y) 좌표와 일치합니다.
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
x = [4,8,12,16,1,4,9,16]
y = [1,4,9,16,4,8,12,3]
label = [0,1,2,3,0,1,2,3]
colors = ['red','green','blue','purple']
fig = plt.figure(figsize=(8,8))
plt.scatter(x, y, c=label, cmap=matplotlib.colors.ListedColormap(colors))
cb = plt.colorbar()
loc = np.arange(0,max(label),max(label)/float(len(colors)))
cb.set_ticks(loc)
cb.set_ticklabels(colors)
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
N = 23 # Number of labels
# setup the plot
fig, ax = plt.subplots(1,1, figsize=(6,6))
# define the data
x = np.random.rand(1000)
y = np.random.rand(1000)
tag = np.random.randint(0,N,1000) # Tag each point with a corresponding label
# define the colormap
cmap = plt.cm.jet
# extract all colors from the .jet map
cmaplist = [cmap(i) for i in range(cmap.N)]
# create the new map
cmap = cmap.from_list('Custom cmap', cmaplist, cmap.N)
# define the bins and normalize
bounds = np.linspace(0,N,N+1)
norm = mpl.colors.BoundaryNorm(bounds, cmap.N)
# make the scatter
scat = ax.scatter(x,y,c=tag,s=np.random.randint(100,500,N),cmap=cmap, norm=norm)
# create the colorbar
cb = plt.colorbar(scat, spacing='proportional',ticks=bounds)
cb.set_label('Custom cbar')
ax.set_title('Discrete color mappings')
plt.show()
다음을 제공합니다.
참조 페이지 https://stackoverflow.com/questions/12487060
반응형
'파이썬' 카테고리의 다른 글
파이썬 거북이에서이 사각형을 어떻게 채울 수 있습니까?-Python (0) | 2021.02.05 |
---|---|
파이썬 목록의 항목을 단일 문자열로 연결하는 방법은 무엇입니까? (0) | 2021.02.05 |
파이썬 간단한 정규식 문제 : 파일에서 모든 새 줄 제거 (0) | 2021.02.05 |
파이썬 Python evaluates 0 as False (0) | 2021.02.05 |
파이썬에서 객체의 속성을 열거하는 방법은 무엇입니까? (0) | 2021.02.05 |
댓글