Как построить график из файла .txt

#python #text

Вопрос:

У меня есть файл .txt, и я хотел бы отобразить данные.

Вот мой код

 import matplotlib.pyplot as plt

with open('/home/tont_fe/Desktop/Extra_for_paper/Lifbase OH emission2.txt') as f:
    lines = f.readlines()
    x = [(line.split()[0]) for line in lines]
    item = [float(item) for item in x]
    y = [(line.split()[1]) for line in lines]
 

Я получаю следующую ошибку:

Ошибка значения: недопустимый литерал для float(): 281,2

пример данных: 281,228 0,01097

281,2289 0,0096

281,2297 0,00888

281,2306 0,00883

281,2315 0,00932

281,2324 0,01008

281,2333 0,01062

281,2341 0,01058

281,235 0,01013

281,2359 0,00981

281,2367 0,01013

281,2376 0,01141

281,2385 0,01377

Комментарии:

1. Замените запятые точками!

Ответ №1:

ValueError: invalid literal for float(): 281,2

Поплавок является исключением . , но получил , , что вызвало ValueError . Вы можете либо заменить , using . перед float подачей в встроенный модуль, либо использовать его следующим образом:

 import locale
locale.setlocale(locale.LC_NUMERIC, 'de_DE')  # I use Deutschland but can be any country using , in floats
value_str = "281,2"
value_float = locale.atof(value_str)
print(value_float)
 

выход

 281.2
 

Ответ №2:

Вы пытаетесь преобразовать string содержащее , в float . Вот почему произошла ошибка!

Удалите , , а затем преобразуйте в float .

 with open('/home/tont_fe/Desktop/Extra_for_paper/Lifbase OH emission2.txt') as f:
    lines = f.readlines()
    x = [(line.split()[0]) for line in lines]
    
    # This line will remove ',' from each string of x
    x = [i.replace(',', '') for i in x]
    
    item = [float(item) for item in x]
    y = [(line.split()[1]) for line in lines]
 

Комментарии:

1. @Federica Tonti, пожалуйста, поддержите и примите мой ответ. Спасибо.

2. к сожалению, я все еще не могу оценить ответ, у меня недостаточно репутации, но ответ принят, я думаю 🙂 большое спасибо!!