2016-09-27 2 views
0

아래와 같이 행렬을 그려야하며, 범례가 반복해서 반복됩니다. numpoints = 1 사용하여 시도한 및이 모든 효과가없는 것. 어떤 힌트?파이썬 - 범례 값이 중복되었습니다.

import numpy as np 
import matplotlib.pyplot as plt 
import pandas as pd 
import matplotlib 
%matplotlib inline 
matplotlib.rcParams['figure.figsize'] = (10, 8) # set default figure size, 8in by 6inimport numpy as np 

data = pd.read_csv('data/assg-03-data.csv', names=['exam1', 'exam2', 'admitted']) 

x = data[['exam1', 'exam2']].as_matrix() 
y = data.admitted.as_matrix() 

# plot the visualization of the exam scores here 
no_admit = np.where(y == 0) 
admit = np.where(y == 1) 
from pylab import * 
# plot the example figure 
plt.figure() 
# plot the points in our two categories, y=0 and y=1, using markers to indicated 
# the category or output 
plt.plot(x[no_admit,0], x[no_admit,1],'yo', label = 'Not admitted', markersize=8, markeredgewidth=1) 
plt.plot(x[admit,0], x[admit,1], 'r^', label = 'Admitted', markersize=8, markeredgewidth=1) 
# add some labels and titles 
plt.xlabel('$Exam 1 score$') 
plt.ylabel('$Exam 2 score$') 
plt.title('Admit/No Admit as a function of Exam Scores') 
plt.legend() 
+0

(선)마다; 그들은 단지 모두 똑같은 색깔과 상징이됩니다. – Evert

+0

아마도 각 유형의 하나의 데이터 세트를 플롯하고, 이들에 레이블을 지정하고, 레이블없이 각 유형의 나머지 데이터 세트를 그릴 수 있습니다. 이것은'admit'이나'no_admit'이 비어 있거나 첫 번째 데이터 셋에만 유효 할 때 문제가 될 수 있습니다. – Evert

답변

0

특히 팬더에 익숙하지 않은 경우 데이터 형식의 예를 넣지 않으면이 문제를 이해하는 것이 거의 불가능합니다. 그러나, 귀하의 의견을 가정하면이 형식은 다음과 같습니다

x=pd.DataFrame(np.array([np.arange(10),np.arange(10)**2]).T,columns=['exam1','exam2']).as_matrix() 
y=pd.DataFrame(np.arange(10)%2).as_matrix() 

>>x 
array([[ 0, 0], 
    [ 1, 1], 
    [ 2, 4], 
    [ 3, 9], 
    [ 4, 16], 
    [ 5, 25], 
    [ 6, 36], 
    [ 7, 49], 
    [ 8, 64], 
    [ 9, 81]]) 

>> y 
array([[0], 
    [1], 
    [0], 
    [1], 
    [0], 
    [1], 
    [0], 
    [1], 
    [0], 
    [1]]) 

이유는 매트릭스 DataFrame에서 이상한 변화이다, 난 당신이 벡터 (1 차원 배열)이있는 경우는 발생하지 것 같아요. 이 작품 내 예를 들어 (xy의 2D 매트릭스의 출처는 깨끗한 형태 확실하지, 나도 몰라) :

여러 데이터 세트를하려하고 있기 때문에, 놀라운 일이 아니다
plt.plot(x[no_admit,0][0], x[no_admit,1][0],'yo', label = 'Not admitted', markersize=8, markeredgewidth=1) 
plt.plot(x[admit,0][0], x[admit,1][0], 'r^', label = 'Admitted', markersize=8, markeredgewidth=1) 
+0

그게 효과가! 도와 줘서 고마워! – user3399935