Гистограмма в Matplotlib с входным файлом

Я хочу сделать Гистограмму в Matplotlib из входного файла, содержащего необработанные данные (.txt). Я сталкиваюсь с проблемами в обращении к входному файлу. Я предполагаю, что это должна быть довольно небольшая программа. Какие-либо гуру Matplotlib, какая-либо справка?

Я не прошу код, некоторые исходные данные должны поместить меня на правильный путь!

5
задан Arkapravo 7 April 2010 в 06:05
поделиться

2 ответа

я бы рекомендовал использовать 'loadtxt', которая на самом деле находится в библиотеке NumPy. Есть родственные функции в Matplotlib (csv2rec), но Matplotlib фактически стандартизирует loadtxt.

Вот как это работает:

from matplotlib import pyplot as PLT

with open('name_of_your_file.csv') as f:
  v = NP.loadtxt(f, delimiter=",", dtype='float', comments="#", skiprows=1, usecols=None)

'v', объект, возвращаемый из 'loadtxt', представляет собой массив n x m NumPy.

'loadtxt' принимает либо файл, либо дескриптор файла. Приведенный выше экземпляр имеет большую часть сигнатуры метода. 'skiprows' - это целое число, задающее количество строк, считая сверху, которые вы хотите пропустить; обычно задается значение "1", чтобы пропустить строку заголовка; 'usecols' начинается с '0' и представляет собой список, перечисляющий столбцы, которые вы хотите включить ('None' является значением по умолчанию и означает "включить все"). Остальные параметры работают, как и ожидалось.

Чтобы построить гистограмму по этим данным:

from matplotlib import pyplot as PLT

v_hist = NP.ravel(v)   # 'flatten' v
fig = PLT.figure()
ax1 = fig.add_subplot(111)

n, bins, patches = ax1.hist(v_hist, bins=50, normed=1, facecolor='green')
PLT.show()
9
ответ дан 14 December 2019 в 01:05
поделиться

Вы не можете напрямую указать matplotlib создать гистограмму из входного файла - вам нужно будет открыть файл самостоятельно и получить из него данные. Как вы это сделаете, зависит от формата файла - если это просто файл с номером в каждой строке, вы можете просто пропустить каждую строку, strip () пробелы и символы новой строки и использовать float () , чтобы преобразовать его в число.

0
ответ дан 14 December 2019 в 01:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: