2013-06-23 5 views
0

각 100 도트 두 세트를 그래프로 나타낼 필요가 있습니다. 첫 번째 점 집합은 Y 축을 따르고 다음 점 집합은 첫 번째 점 집합에서 조금 떨어져 있습니다. 다음과 같이Matplotlib Graphing

내 코드는 다음과 같습니다

import matplotlib.pyplot as plt 
data= numpy.array(network)  #network is a list of values 
datatwo= numpy.array(list)  #list is another list 
cmap= numpy.array([(1,0,0),(0,1,0)]) 
uniqdata, idx=numpy.unique(data, return_inverse=True) 
uniqdata, idx=numpy.unique(datatwo, return_inverse=True) 

N=len(data) 
M=len(datatwo) 
fig, ax=plt.subplots() 
plt.scatter(numpy.zeros(N), numpy.arange(1,N+1), s=50, c=cmap[idx]) 
plt.scatter(numpy.ones(M), numpy.arange(1,M+1), s=50, c=cmap[idx]) 
plt.grid() 
plt.show() 

내 문제는 두 목록, 네트워크 목록이 다른 값을 가지고있다,하지만 인터프리터는 점 두 배의 동일한 세트를 그래프. 네트워크와 목록에 각각 다른 두 개의 점 집합이 있어야합니다.

코드에 어떤 문제가 있습니까? 감사합니다

+0

마이너 댓글이'plt'에서 matplotlib.pyplot는' – Greg

+5

잘 at', 우선, 당신은'data' 또는'datatwo'에서 사용하지 않는하지 as''해야하는 데 도움이 당신의 음모는 전혀 전화하지 않습니다. 길이가 3 인 경우, '데이터'의 실제 값과 관계없이 [1, 2, 3]을 y 값으로 그립니다. 또한,'idx'를 생성 한 직후에'idx'를 덮어 씁니다. – BrenBarn

+0

당신은 변수를 명명하기 위해'list'를 사용해서는 안되지만 어쨌든 문제를 해결할 수는 없습니다. –

답변

0

두 개의 목록에 포함 된 고유 한 값에 플롯 할 작업 코드입니다. 첫 번째 세트는 Y 축에 위치하고 두 번째 세트는 Y = 1에 각각의 목록에 다른 색상을 사용합니다. 나는 당신이 np.unique을 사용하고 있기 때문에 두 개의 목록에 두 번 이상 플롯하지 않으려는 반복 된 값이 있다고 추측합니다.

import numpy as np 
import matplotlib.pyplot as plt 
#################################################################################### 

network = [1,2,3,4,5,6,7,8,8,8,9,10] # Some lists of values 
ilist = [1,2,3,4,5,6,7,8,9,9,9,10] # Some other list of values 


data= np.array(network)  #network is a list of values 
datatwo= np.array(ilist)  #list is another list 

# Some list of color maps to color each list with 
cmap= np.array([(1,0,0),(0,1,0)]) 

# Get the unique values from each array 
uniqdata1, idx1=np.unique(data, return_inverse=True) 
uniqdata2, idx2=np.unique(datatwo, return_inverse=True) 

# Find the length of each unique value array 
N=len(uniqdata1) 
M=len(uniqdata2) 

# Plot the data 
fig, ax=plt.subplots() 
plt.scatter(np.zeros(N), uniqdata1, s=50, c=cmap[0]) 
plt.scatter(np.ones(M), uniqdata2, s=50, c=cmap[1]) 
plt.grid() 
plt.show() 

희망이