Python, gdzie jest błąd?

0

Super konkurencja "Kto pierwszy znajdzie błąd" a tak serio potrzebuje pomocy w znalezieniu błędu w moim kodzie (błąd jest pewnie minimalny). Program ma robić wykres z dwóch wybranych kolumn z pliku. import pylab as p
Time=[]
Elec=[]
VdW=[]
with open ('energyInnLipid.dat', 'r') as plik:
c = plik.readline()
for i in plik:
a = i.split()
Elec.append(float(a[6]))
VdW.append(float(a[7]))
for j in xrange(1,len(VdW)+1):
Time.append(j*0.05)
p.plot(Time,Elec,'b',Time,VdW,'r')
p.legend(('dane Elec','dane VdW'))
p.xlabel('Time')
p.ylabel('Energy')
p.title('EnergyInnLipid')
p.grid(True)
p.show()

0

A może pokaż jaki błąd wyskakuje? :D

0

Kod jest chyba poprawny - nie wiem czy u siebie też masz wcięcie w pierwszym wierszu. Może odczytywany plik ma inna zawartość niż się spodziewasz.

0

pokazuje mi puste okno wykresu, wez narysowanych wartości, czyli tak jakby nie czytało odpowiednich danych czy coś

0

To jeszcze udostępnij plik.

0

Normalnie plik ma rozszerzenie .dat ale musiałem zmienić gdyż nie mozna takiego wstawić

0

Tak ma być?

0

dokładnie, co powinienem zmienić?

0

Nie wiem. Może wersję Pythona (ja robiłem na 2.7) lub Pylaba.

0

Dla pliku *.txt rysuje mi śliczny wykresik w Pythonie 3.4.X.

import pylab as p

Time = []
Elec = []
VdW = []

with open('energyInnLipid.txt', 'r') as plik:

    c = plik.readline()

    for i in plik:
        a = i.split()
        Elec.append(float(a[6]))
        VdW.append(float(a[7]))

    for j in range(1, len(VdW)+1):
        Time.append(j*0.05)

p.plot(Time, Elec, 'b', Time, VdW, 'r')
p.legend(('dane Elec', 'dane VdW'))
p.xlabel('Time')
p.ylabel('Energy')
p.title('EnergyInnLipid')
p.grid(True)
p.show()

xxx.png

Zauważ, że użyłem range() zamiast xrange(). Spróbuj w swoim Pythonie 2.X zrobić tak jak ja. Może pójdzie. Niestety nie mam zainstalowanej dystrybucji na wersji 2.X, więc nie przeprowadzę testów.

PS Staraj się, aby Twój kod był ładnie sformatowany i czytelny.

1 użytkowników online, w tym zalogowanych: 0, gości: 1