在python中为x的一个值绘制x的多个值

时间:2014-10-12 18:47:18

标签: python list plot

尝试使用plt.plot进行绘图时遇到问题。我特别的问题是我有两个清单。对于第一个列表的每个元素,我想绘制第二个列表的相应4个元素。这是我的代码:

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(lista的元素)提供四个值(listb的元素)。但我得到的是只有lista的第一个元素的图表

1 个答案:

答案 0 :(得分: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')

作为python中的一般规则,您通常不使用while循环,并且每当您发现自己使用它们作为索引进行递增时,您需要重新考虑代码以避免它。它很难阅读并且非常容易出现“关闭1”错误。