Подтвердить что ты не робот

Вопрос о кумулятивном столбце Gnuplot

У меня есть некоторые данные.

#Time  Distance
 1   3
 2   5
 4   9
 8  11
12  17
14  20
16  34
20  40

Я хочу построить кумулятивное расстояние по времени в gnuplot... (это должно быть легко), но я не знаю, как.

х

4b9b3361

Ответ 1

Для тех, кто все еще ищет такие вещи. Если ваша версия gnuplot имеет значение 4.4 или новее, вы можете сделать следующее:

a=0
#gnuplot 4.4+ functions are now defined as:  
#func(variable1,variable2...)=(statement1,statement2,...,return value)
cumulative_sum(x)=(a=a+x,a)
plot "test.dat" using 1:(cumulative_sum($2))

Ответ 2

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

$ gnuplot
gnuplot> plot "datafile" smooth cumulative

Ответ 3

Предполагая, что ваши данные находятся в файле test.txt, как насчет:

plot "<awk '{i=i+$2; print $1,i}' test.txt" with lines

Ответ 4

То же самое может быть достигнуто с помощью "кумулятивного" варианта "плавного" варианта (просто введите help smooth в gnuplot).

Ответ 5

У меня есть небольшой опыт работы с Gnuplot, и я просто поглядел на документацию. К сожалению, я не смог найти решение для генерации суммарной суммы при планировании.

Я думаю, что вам нужно будет сделать массаж ваших данных другой программой, прежде чем разрешить Gnuplot. awk - это одна программа, которая приходит на ум, она практически создана для возиться со столбчатыми данными. Вы можете интегрировать этот процесс в процесс построения графика, следуя этим инструкциям.

Ответ 6

Это не то, что задает вопрос, но "функция кумулятивного распределения gnuplot" всегда приводит меня сюда, и ни один из ответов не подходит, если у вас уже нет ожидаемых данных gnuplot.

Но предположим, что вам нужна кумулятивная функция распределения только расстояний и только иметь необработанные расстояния. Существует небольшой трюк, с помощью которого gnuplot может вычислять значения y:

test.dat:

#Time  Distance
 1   3
 2   5
 4   9
 8  11
12  17
14  20
16  34
20  40

plot.gpi:

datafile = test.dat
stats datafile
plot datafile using 2:(1./STATS_records) smooth cumulative title "distance"

введите описание изображения здесь

Это не так гибко, как наличие всех данных.