Skip to main content
 首页 » 编程设计

python之根据列表索引绘制列表值

2025年05月04日22JeffreyZhao

我有一个列表列表,其中每个列表都包含一些数字,比方说

t = [[5,6,1],[4,6,33],[6,33,5,10],[1,2],[1,22,44,3]] 

使用 python3 我想根据这个特定的列表索引绘制每个列表值,在上面的例子中我应该有从 1 到 3 的 x 轴,从 1 到 50 的 y 轴,并在 (1,5) 上标记,(1,6),(1,1),(2,4),(2,6) ...

这是我的代码

x = list(range(3)) 
y = [[5,6,1],[4,6,33],[6,33,5,10],[1,2],[1,22,44,3]] 
 
 
for i in range(len(x)): 
    purchases = y[i] 
    for j in range(len(purchases)): 
        plt.scatter(x,purchases) 

它正确地绘制了前两个索引然后我得到了错误:

x and y must be in the same size

输出图像

正确的做法是什么?

请您参考如下方法:

我觉得你需要

y = [[5,6,1],[4,6,33],[6,33,5,10],[1,2],[1,22,44,3]] 
 
 
for v in y: 
    plt.scatter(range(len(v)),v) 

这基本上是计算每个值的 range,因为你的 y 列表里面有不同大小的列表


如果你想为 y 的每个索引设置相同的 x,那么做

for i,v in enumerate(y): 
    plt.scatter([i+1]*(len(v)),v) 

请注意,我已经完成了 [i+1],因为按照您编写它的方式,您似乎想要一个从 1 开始的索引