尝试使用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的第一个元素的图表
答案 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”错误。