2014-10-12 4 views
-2

plt.plot을 사용하여 플롯하려고 할 때 문제가 있습니다. 내 문제는 두 가지 목록이 있다는 것입니다. 첫 번째 목록의 모든 요소에 대해 두 번째 목록의 해당 4 요소를 그려 봅니다.파이썬에서 y의 한 값에 대해 x 값을 여러 개 플롯

import numpy as np 
import pylab as pl 

lista=[1,2,3,4,5,6] 
listb=[1,2,0,4,1,5,0,2,1,2,1,4,1,2,0,4] 

i=0 
j=0 
l=0 

while i<=5: 
    while j<=3: 
    X=listb[j+l*4] 
    Y=lista[i] 
    pl.plot(Y,X,'ro') 
    j=j+1 
    i=i+1 
    l=l+1 


pl.xlim(0,7) 
pl.ylim(-1,5) 
pl.show() 

내가 원하는 것은 모든 Y (중고 장비 구매의 요소) 네 개의 값 (listb 요소)에 대한 것 그래프를 만드는 것입니다 : 이것은 내 코드입니다. 하지만 내가 얻을 것은 당신이 할 경우 작업의 약간은 크게 코드를 단순화 선행

+0

질문을 다시 포맷하십시오. 이렇게 읽는 것은 어렵습니다. – mdurant

+0

정말 죄송합니다. –

+0

귀하의 실수는 새로운 각 i에 대해 j를 0으로 되 돌리는 것이 아닙니다. for-loop는 그 일을 더 잘 수행하거나 트릭을 나열합니다. – mdurant

답변

0

중고 장비 구매의 첫 번째 요소와 그래프 : 파이썬에서 일반적으로

lista = [1,2,3,4,5,6] 
listb = [1,2,0,4,1,5,0,2,1,2,1,4,1,2,0,4] 

listaexpanded = [] 
for e in lista: 
    listaexpanded.extend([e] * 4) 

for y,x in zip(listaexpanded, listb): 
    pl.plot(y, x, 'ro') 

는 대부분 돈 while 루프를 사용하지 않으며, 인덱스로 사용할 때마다 코드를 다시 생각해보고 싶을 때마다 항목을 증가 시키면됩니다. 읽기 어렵고 "1 씩 나감"오류가 발생하기 쉽습니다.

+0

아마 내 질문은 심하게 제기됩니다. 당신의 대답은 내가 알고 싶은 것과 관련이 없기 때문입니다. –

+0

정말요? 나는 pylab을 설치하지 않았지만 이것은 16 개의 다른 점을 그려야합니다 (데이터의 중복으로 인해 15 개가 유일 함). –

관련 문제