2017-09-08 4 views
0

Je veux avoir une liste 2 ou 3D en Python contenant des extrémités à 10 lignes séparées où je peux passer les coordonnées y en fonction de x dans la gamme (dix). y = ((x + 1)/2) * x pour x dans la plage (10 ou quelle que soit la longueur).Ajouter 2 coordonnées à un index dans une liste en Python, et l'algèbre

Mon but ultime est de faire 10 lignes séparées avec des extrémités x 0-10 mais les y seraient de plus en plus éloignés, selon l'équation ci-dessus. Je ne suis pas en mesure de le faire ::

for n in range(3): 
    listy2[0].append((n,n)) 
    listy2[1].append((n,n)) 

Il renvoie l'erreur lin [0] ... pas dans l'index.

Je suis perdu sur comment faire. Voici ce que j'ai jusqu'ici.

enter image description here

import numpy as np 
import matplotlib.pyplot as plt 
from mpl_toolkits.mplot3d import Axes3D 

fig = plt.figure() 
ax = fig.add_subplot(111, projection = '3d') 

listy2 = [[] for i in range(3)] 

for q in range(3): 
    listy2[q].append((0,10)) 

listy2[0].append((2,2)) 

listy2[1].append((3,3)) 

listy2[2].append((4,4)) 


print('listy2 ' ,listy2) 

#THIS IS WHAT LIST LOOKS LIKE 
# lines = [ [(0,10),(2,2)] , 
#   [(0,10),(3,3)] , 
#   [(0,10),(4,4)] ] 


for li in listy2: 

    ax.plot(li[0],li[1]) 



ax.set_xlabel("x axis") 
ax.set_ylabel("y axis") 
plt.show() 
+0

Qu'est-ce que cela signifie que vous ne pouvez pas? Avez-vous une erreur, des résultats inattendus? Plus d'infos nécessaires ... – Julien

+0

Signification Je ne sais même pas comment faire. Il a ajouté quelques tuples fous de 3,3,3, 4,4,4 et 5,5,5 à chaque liste. – peer

+0

Veuillez clarifier votre question en supprimant tout code non pertinent pour faire un [mcve] – Julien

Répondre

0

I résolu en modifiant int (n), int (n). Voici le code et la nouvelle photo.

enter image description here

import numpy as np 
import matplotlib.pyplot as plt 
from mpl_toolkits.mplot3d import Axes3D 

fig = plt.figure() 
ax = fig.add_subplot(111, projection = '3d') 




listy2 = [[] for i in range(10)] 

for q in range(10): 
    listy2[q].append((0,10)) 

for r in range(10): 
    j = (r+1)*r 
    listy2[r].append((int(j), int(j))) 


print('listy2 ' ,listy2) 


# HERE IS WHAT LIST OF ENDPOINTS LOOK LIKE 
# listy2 [[(0, 10), (0, 0)], 
#  [(0, 10), (2, 2)], 
#  [(0, 10), (6, 6)], 
#  [(0, 10), (12, 12)], 
#  [(0, 10), (20, 20)], 
#  [(0, 10), (30, 30)], 
#  [(0, 10), (42, 42)], 
#  [(0, 10), (56, 56)], 
#  [(0, 10), (72, 72)], 
#  [(0, 10), (90, 90)]] 

for li in listy2: 

    ax.plot(li[0],li[1]) 



ax.set_xlabel("x axis") 
ax.set_ylabel("y axis") 
plt.show()