Forum >> Programmazione Python >> Calcolo scientifico >> Dati e grafico

Pagina: Indietro 1 2 3 4 5 Avanti

Si quello l'ho fatto. Il problema è che, giocando coi dati (mettendo nelle x i numeri da 1 a 10 e nell'asse y i corrispondenti quadrati) restituisce questo:
ma intendi qualcosa tipo questo?









import matplotlib.pyplot as plt

x=[]
y=[]
for i in range(1,11):
    x.append(i)
    y.append(i**2)

plt.plot(x, y)
plt.show()

Uscivano come il file che ho allegato e ora riallego perché sulle ordinate non ci stanno i quadrati perfetti ma valori a caso attorno a quelli (Es: 3-10, 4-17, 5-23 etc)



Allegati
Da quello che ho capito il tuo è solo un problema che nella lista i numeri non sono ordinati in numero crescente.
In teoria basta aggiungere il sort() prima del plottaggio e dovrebbe andare tutto a posto




x.sort()

y.sort()
No no nella lista sono in ordine. Il problema è che nel grafico che restituisce, i valori negli assi sia x che y sono disordinati (non 1 2 3 4 5 ma 2 1 3 4 9 5 etc) e di conseguenza i punti sono a casaccio e non hanno (come nel mio caso) un andamento parabolico
ah ok, nel grafico te li ordina per il numero che è davanti, quindi 1,5, 13 diventa 1,13,5 perchè l'1 del 13 è più piccolo di 5.
mi sa che ti vede i numeri come stringhe

prova a convertire i numeri in int(), dovrebbe tornare a posto
Scusa se te lo chiedo ma come si fa? Non ne so quasi niente :confused:
Scusa se te lo chiedo ma come si fa? Non ne so quasi niente :confused:
puoi usare la funzione map()




List = ['1','2']		#creo una lista di stringhe, notare gli apici
print(type(List[ 0 ]))		#infatti se chiedo di che tipo è il primo oggetto in lista, mi dice che è str
List = list(map(int, List))	#la funzione map mi converte tutti gli oggetti da str a int
print(List)			#notare che non ci sono più i pedici
print(type(List[ 0 ]))		#e infatti se richiedo il tipo, mi dice che è int

Niente.. non cambia niente.. la disposizione rimane uguale a prima
Niente.. non cambia niente.. la disposizione rimane uguale a prima
prova a postare il codice che stai usando ed eventualmente il file txt se i numeri li hai caricati li
import matplotlib.pyplot as plt

List = open("PrimTabDati.txt").readlines()
x = [x.split("\t",1)0 for x in List]
del x0
y = [y.split("\t",1)1 for y in List]
del y0
y = [s.replace('\t', '') for s in y]
y = [s.replace('\n', '') for s in y]

plt.plot(x, y, "k.")
plt.legend()
plt.xlabel("Spazio")
plt.ylabel("Periodo")
plt.title("Dipendenza")
plt.show()




Fin ora è questo, più l'ultima parte che mi hai inviato che ho provato a mettere ovunque
Allegati


Pagina: Indietro 1 2 3 4 5 Avanti



Esegui il login per scrivere una risposta.