У меня есть некоторые данные.
#Time Distance
1 3
2 5
4 9
8 11
12 17
14 20
16 34
20 40
Я хочу построить кумулятивное расстояние по времени в gnuplot... (это должно быть легко), но я не знаю, как.
х
У меня есть некоторые данные.
#Time Distance
1 3
2 5
4 9
8 11
12 17
14 20
16 34
20 40
Я хочу построить кумулятивное расстояние по времени в gnuplot... (это должно быть легко), но я не знаю, как.
х
Для тех, кто все еще ищет такие вещи. Если ваша версия 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))
Если ваши данные находятся в файле данных файла, вы можете сделать кумулятивный график следующим образом:
$ gnuplot
gnuplot> plot "datafile" smooth cumulative
Предполагая, что ваши данные находятся в файле test.txt, как насчет:
plot "<awk '{i=i+$2; print $1,i}' test.txt" with lines
То же самое может быть достигнуто с помощью "кумулятивного" варианта "плавного" варианта (просто введите help smooth
в gnuplot).
У меня есть небольшой опыт работы с Gnuplot, и я просто поглядел на документацию. К сожалению, я не смог найти решение для генерации суммарной суммы при планировании.
Я думаю, что вам нужно будет сделать массаж ваших данных другой программой, прежде чем разрешить Gnuplot. awk - это одна программа, которая приходит на ум, она практически создана для возиться со столбчатыми данными. Вы можете интегрировать этот процесс в процесс построения графика, следуя этим инструкциям.
Это не то, что задает вопрос, но "функция кумулятивного распределения 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"
Это не так гибко, как наличие всех данных.