2016-10-16 6 views
3

Я пытаюсь построить (x,y), где y = [[1,2,3],[4,5,6],[7,8,9]].Построение списка списков на одном графике в Python

Скажите, len(x) = len(y[1]) = len(y[2]) .. Длина y определяется пользователем. Я хочу построить несколько графиков y на том же графике, т. Е. (x, y[1],y[2],y[3],...). Когда я попытался использовать цикл, он говорит dimension error.

Я также попытался: plt.plot(x,y[i] for i in range(1,len(y)))

Как построить? Пожалуйста помоги.

for i in range(1,len(y)): 
plt.plot(x,y[i],label = 'id %s'%i) 
plt.legend() 
plt.show() 
+1

У вас ошибка отступа в команде участка. Вы также начинаете индексирование с 1. {range (1, ...) вместо диапазона (0, ...)). Я предполагаю, что это намеренно. Код должен работать, тем не менее. Пожалуйста, сообщите нам об ошибке, с которой вы столкнулись. –

+0

Каковы значения x? Любые образцы? –

+0

X = [1,2,3]. @Nikhil Я получаю ошибку измерения при построении – sivasudhan

ответ

3

Предполагая, что некоторые значения образца для x ниже, это код, который может дать желаемый результат.

import matplotlib.pyplot as plt 
x = [1,2,3] 
y = [[1,2,3],[4,5,6],[7,8,9]] 
plt.xlabel("X-axis") 
plt.ylabel("Y-axis") 
plt.title("A test graph") 
for i in range(len(y)): 
    plt.plot(x,[pt[i] for pt in y],label = 'id %s'%i) 
plt.legend() 
plt.show() 

Предположение: x и любой элемент в y имеет одинаковую длину. Идея чтения поэлементно с тем, чтобы построить список по (x,y[0]'s), (x,y[1]'s) и (x,y[n]'s

Ниже сюжет я получаю для этого случая: Sample plot