Не существует простого способа создания фактической гистограммы, поскольку это не просто задача построения графика, но требует, чтобы данные были сначала отсортированы и объединены. Вы можете сделать это вне gnuplot и отобразить результат из gnuplot просто с помощью plot 'file' with histo
.
Тем не менее, есть два основных способа сделать то, что вы хотите полностью в gnuplot.
Во-первых, это старый трюк, который заставляет gnuplot собирать и сортировать данные, используя небольшую математику и плавный стиль smooth freq
. Если ваш файл данных называется "data", вы можете сделать:
w = 5
bin(x,wth) = width*floor(x/wth)
plot 'data' using (bin($2,bw)):(1.0) smooth freq with boxes
Это работает, но имеет все недостатки гистограмм, в основном то, что внешний вид вашего дистрибутива будет зависеть от выбранной вами ширины бина, которую вы можете присвоить "w" в первой строке.
Последние (> = 4.4) выпуски gnuplot могут вычислить оценку плотности ядра, которая похожа на независимую от бина гистограмму: она дает вам непрерывное распределение. Кроме того, он выполняет сортировку и сортировку для вас! Вам просто нужно сказать
plot 'data' using 2:(.001) smooth kden
.001 выше даст вам нормализованное распределение, если у вас есть 1000 точек данных. Вы захотите заменить обратное количество имеющихся у вас точек данных (или не беспокойтесь, если вам все равно, нормализуется ли ваш результат).
Я рекомендую последний способ, если у вас установлена последняя версия gnuplot. Еще немного об этом в моей книге о gnuplot, которая только что вышла.