2013-07-28 2 views
2

Я создал гистограмму некоторые данные, которые я имею в .dat файл, используяGnuplot гистограмма

binwidth=... 
bin(x,width)=width*floor(x/width) 

plot 'file' using (bin($1,binwidth) + binwidth/2):(1.0) smooth freq with boxes 

, но потому, что мой файл имеет более 1000000 записей, которые он читает из и помещает в разные контейнеры, я не Не знаю точной частоты/плотности каждого бункера. Я хотел бы узнать частоту или записать частоту в файл, возможно, кто-нибудь знает, возможно ли это? Мне также было интересно, можно ли вместо частоты нарисовать процент по оси y, например, если моя частота равна 50 000, а мое общее число составляет 1 000 000, а затем по оси y, чтобы иметь процент вместо фактической частоты?

Спасибо

ответ

6

Вы можете использовать команду stats, чтобы получить количество записей.

stats 'file' 
binwidth=... 
bin(x,width)=width*floor(x/width) 

plot 'file' using (bin($1,binwidth) + binwidth/2):(1.0/STATS_records) smooth freq with boxes 

Чтобы построить лучший процент Использовать

plot 'file' using (bin($1,binwidth) + binwidth/2):(100.0/STATS_records) smooth freq with boxes 
+0

Вы спасли меня часы и часы работы! Огромное спасибо!! –

+0

Я также понял, другое решение, прочитав в Интернете (но его менее удобно, чем то, что вы упомянули) - для людей с подобными проблемами - «имя_файла» binwidth = ... бин (х ширина) = ширина * пол (x/ширина) set table "hist.dat" 10 fade1 используя (bin ($ 1, bw) + bw/2) :(1.0) плавная частота unset table «set table» позволяет всю информацию о гистограмме, которая должна быть сохранена в файле, в этом случае "hist.dat" –

Смежные вопросы