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

Pagina: Indietro 1 2 3 4 5 Avanti

Non so perché non appare il codice. Comunque tutto ciò che segue for- in è dentro il ciclo, mentre dentro def c'è solo la prima riga successiva. Inoltre da due problemi: return (ouside of function) e out (name not defined).
ok, io l'ho fatto così e a me funziona. fammi sapere se qualcosa non ti torna




import matplotlib.pyplot as plt

List = open("test.txt").readlines()
x = [x[:5] 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]

line, = plt.plot(x, y, label ="linea 1")
plt.legend()
plt.xlabel("asse x")
plt.ylabel("asse y")
plt.title("grafico di prova")
plt.show()



le ultime 6 righe di codice sono quelle che ti ho già commentato prima, sotto ti commento riga per riga






List = open("test.txt").readlines()

# Qui vado ad aprire il file di testo, e col metodo readlines() leggo ogni riga e la metto separatamente nella lista List che se la guardiamo appare così:

['Lunghezza(x)\tPeriodo(y)\n', '0,255\t\t0,500\n', '0,275\t\t0,588\n', '0,295\t\t0,647\n', '0,315\t\t0,712\n', '0,335\t\t0,756\n', '0,355\t\t0,813\n', '0,375\t\t0,852\n', '0,395\t\t0,892\n', '0,435\t\t0,985\n', '0,475\t\t1,057']




x = [x[:5] for x in List]

# in ogni riga i primi 5 caratteri sostanzialmente sono un numero che fa parte delle x, quindi creo la lista x e ci metto dentro i primi 5 caratteri di ogni oggetto in lista




del x0

#elimino il primo elemento della lista che sostanzialmente è descrizione (lunghezza) e non un numero




y = [y.split("\t",1)1 for y in List]
# ogni elemento di List lo vedo a spezzare dove trova "\t" e prendo la parte a destra

del y0
#elimino il primo elemento della lista che sostanzialmente è descrizione (periodo) e non un numero




y = [s.replace('\t', '') for s in y]
y = [s.replace('\n', '') for s in y]
#elimino i caratteri residui come "\t" ed "\n"



--- Ultima modifica di stix77 in data 2017-12-31 15:24:53 ---

--- Ultima modifica di stix77 in data 2017-12-31 15:26:06 ---
non riesco a capire come mai ma spesso nel mio post quando scrivo le parantesi quadre, vengono sostituite con un punto di domanda.. tienine conto se copi il codice
Restituisce "invalid syntax" in questa parte

y = [y.split("\t",1)1 for y in List]1

e "name x0 is not defined"
purtroppo come ti dicevo non so come mai ma nel post sono state segate le parentesi quadre, adesso te lo posto come immagine così sai dove correggere














--- Ultima modifica di stix77 in data 2018-01-01 02:26:15 ---
Siiii grazie mille Stix77 che mi hai aiutato pure a capodanno. Di nuovo grazie :ok: :)


--- Ultima modifica di Andrdne in data 2018-01-01 14:28:58 ---
Solo altre due cose: la virgola dopo "line" a che serve?



--- Ultima modifica di Andrdne in data 2018-01-01 14:43:18 ---
o figurati, se posso aiutare è sempre un piacere ;)



il "[:5]" va a prendere i primi 5 caratteri della riga. l'ho usato perchè ho visto che tutti i numeri sono composti dallo zero, seguito dalla virgola e da 3 decimali, quindi 5 caratteri in tutto.








--- Ultima modifica di stix77 in data 2018-01-01 14:47:40 ---

--- Ultima modifica di stix77 in data 2018-01-01 14:47:59 ---
E se fossero numeri con numero diverso di cifre?
E se fossero numeri con numero diverso di cifre?
dobbiamo cambiare sistema.

hai visto che per le Y non ho preso il numero di caratteri ma ho tagliato la riga in due, ho preso la parte a destra depurandola di caratteri non desiderati? ecco, si dovrebbe fare la stessa cosa per le X


Pagina: Indietro 1 2 3 4 5 Avanti



Esegui il login per scrivere una risposta.