import csv
import matplotlib.pyplot as plt
filename = r"C:\Users\name\Desktop\sampledata.csv"
with open(filename, newline='') as file:
reader = csv.reader(file)
header = next(reader)
data = []
for row in reader:
measured_time = float(row[0])
wv1 = float(row[1])
wv2 = float(row[2])
data.append([measured_time, wv1,wv2])
time=data[0]
y1=data[1]
plt.plot(time,y1)
plt.show()
工作得很好,但因爲這是在我處理真實數據之前進行的測試。當specyfing定界符時導入csv數據行和列
現在真實數據沒有標題,只包含2列。
import csv
import matplotlib.pyplot as plt
filename = r"C:\Users\name\Desktop\real_data.csv"
with open(filename, newline='') as file:
reader = csv.reader(file,delimiter=';')
data = []
for row in reader:
measured_time = float(row[0])
wv1 = float(row[1])
data.append([measured_time, wv1])
time=data[0]
y1=data[1]
plt.plot(time,y1)
plt.show()
這產生
時間= [100.1]
Y1 = [110,2]
所以基本上只是第2行,而第一碼塊正確地提取的列
時間= [100 110 ...]
Y1 = [1 2 ...]
同樣的事情發生時,我使用
import csv
import matplotlib.pyplot as plt
filename = r"C:\Users\name\Desktop\sampledata.csv"
with open(filename, newline='') as file:
reader = csv.reader(file)
header = next(reader)
data = []
for row in reader:
measured_time = float(row[0])
wv1 = float(row[1])
data.append([measured_time, wv1])
time=data[0]
y1=data[1]
plt.plot(time,y1)
plt.show()
現在我的解決辦法是
data = np.array(data).astype("float")
time=data[:,0]
y1=data[:,1]
當然,必須有一個更好的辦法,我剛開始使用Python。
數據使用:
sample data
Time,279 nm,306 nm
0,100,150
1,110,175
2,125,230
3,130,245
real data
3.986931e+002;0.000000e+000
4.021733e+002;0.000000e+000
是';'在文件中使用了分隔符嗎?你確定你沒有錯誤的數據文件? – Laszlowaty
你可以添加幾行從真實文件到帖子 – Marco
@Laszlowaty是的;是真實數據中的分隔符,我會排除錯誤,因爲我提到的解決方法是有效的。 @ Marco完成 – idkfa