как построить данные, разделенные переменными номерами пробелов в файлах, используя matplotlib - PullRequest
0 голосов
/ 10 октября 2018

У меня есть несколько файлов, содержащих данные, которые выглядят следующим образом

23  125
5   100
7    15

Я хотел бы построить их.

Если элементы в каждой строке разделены одним пробелом, следующий код будет работать

import matplotlib.pyplot as plt
import numpy as np

x, y = np.loadtxt('file_to_plot', delimiter=' ', unpack=True)
plt.plot(x,y)
plt.show()

Однако элементы в файле разделены переменным числом пробелов.

Одним из решений будет предварительная обработка файла, чтобы удалить все лишние пробелы с помощью чего-то вроде конвейера оболочки

cat file_to_plot | tr -s ' ' > file_to_plot2

, а затем использовать код python в file_to_plot2.

Мой вопрос: есть ли способ использовать np.loadtxt с каким-либо оператором форматирования, чтобы иметь возможность выводить из исходного файла?

Если нет, каков наилучший способ предварительной обработки исходного файла как части Python?код, так что мне не нужно использовать конвейер оболочки?

T Бургис полностью ответил на мой вопрос, однако существует альтернативный способ построения из файлов, разделенных пробелами, а именно,

import matplotlib.pyplot as plt
import csv

x = []
y = []

fin = open('file_to_plot')
plots = csv.reader(fin, delimiter=' ')
for row in plots:
      x.append(float(row[0]))
      y.append(float(row[1]))

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

Исключение разделителя при таком подходе не решает проблему построения данных, разделенных несколькими пробелами.Это какой-то трюк, чтобы заставить работать приведенный выше код, или мне нужно начинать с файла со значениями, разделенными одним пробелом?

...