построить список значений по списковому индексу - PullRequest
0 голосов
/ 03 июля 2018

У меня есть список списка, в котором каждый список содержит несколько чисел, скажем,

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

с использованием python3 Я хотел бы построить каждый список значений по этому конкретному индексу списка, в приведенном выше примере у меня должна быть ось X от 1 до 3, ось Y от 1 до 50 с отметкой на (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)

правильно отображает первые два индекса, затем я получаю сообщение об ошибке:

х и у должны быть одинакового размера

выходное изображение

Как правильно это сделать?

1 Ответ

0 голосов
/ 03 июля 2018

Я думаю, что вам нужно

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 содержит списки разного размера

enter image description here


Если вы хотите установить то же самое x для каждого индекса y, тогда выполните

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

Обратите внимание, что я сделал [i+1], потому что, как вы его написали, казалось, вы хотели индекс, начинающийся с 1

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...