2016-08-26 2 views
1

데이터 세트의 열 x1 및 x2와 클래스 y의 값이 0 또는 1입니다. 값 y == 1이 다음과 같이 나타나도록 산포도에 x1과 x2를 플롯해야합니다. "+"및 값 y == 0은 "o"로 나타납니다.다른 마커 파이썬을 사용한 플로팅 클래스

x1 = np.array(100) 
x2 = np.array(100) 
#y = array of length 100 either with value 1 or 0 
plt.scatter(x1, x2, y=1, marker='+') 
plt.scatter(x1, x2, y=0, marker='o') 
plt.show() 

의견이 있으십니까?

답변

1

는 할 수 있습니다 만 인덱스 y==0 또는 y==1의 조건을 사용하여 x1x2 배열 :

plt.scatter(x1[y==1], x2[y==1], marker='+') 
plt.scatter(x1[y==0], x2[y==0], marker='o') 
0

np.where을 사용하여 y- 배열이 0 또는 1 인 위치의 색인을 얻은 다음 적절하게 그려 봅니다. 아래 예

import matplotlib.pyplot as plt 
import numpy as np 

plt.close('all') 


x = np.arange(100) 
y = np.random.randint(0, 2, 100) 

arg_0 = np.where(y == 0) 
arg_1 = np.where(y == 1) 

fig, ax = plt.subplots() 
ax.scatter(x[arg_0], y[arg_0], marker='o') 
ax.scatter(x[arg_1], y[arg_1], marker='+') 
ax.set_ylim(-0.1, 1.1) 
fig.show()