gnuplot удаляет выбросы при построении файла данных - PullRequest
1 голос
/ 08 декабря 2011

Мне нужно построить файл данных из 2 столбцов, используя gnuplot, я думаю, что мне нужен точечный график.Мое понимание gnuplot доходит до того, что:

plot "first_click" using 2:1

3 строки от головы и хвоста моих данных выглядят следующим образом:

1 612856
3 3840538
5 5240597
.
.
.
139845 1
141101 1
141584 1

Я ожидаю, что мой график рассеяния покажет логарифмическийтенденция, однако мои данные (как и большинство данных) имеют тонны выбросов.Поэтому мне нужно сделать одну из двух вещей:

  1. Автоматически «масштабировать» туда, где находится большая часть данных.
  2. Автоматически сокращать выбросы.
  3. Предоставлять предикатдля каждого из столбцов вручную сокращать данные и, возможно, предикаты, которые могут принимать оба столбца записи в области действия - например, !column1 > x && ! column2 == 1

Точность не имеет значения.

На этом этапе я предпочитаю 1 и 2, но я бы хотел посмотреть, возможен ли также вариант 3, поскольку я программист, а не статистик.

Ответы [ 2 ]

3 голосов
/ 12 апреля 2012

Вы также можете попробовать

plot "first_click" using 2:1 smooth bezier with lines

У этого побочного эффекта не отображается большинство выбросов.

1 голос
/ 11 декабря 2011

gnuplot должно автоматически увеличиваться в зависимости от нанесенных данных (если нет, вы можете использовать reset yrange, xrange для автоматического увеличения).Если выбросы удаляются до построения графика, то ваше первое требование уже будет выполнено.

Достигнуть второго и третьего можно, изменив команду построения графика следующим образом:

plot "first_click" using ($2 != 1 ? $2 : 1/0):($1 < x ? $1 : 1/0)

Будет отображаться только графикзначения, для которых второй столбец не равен 1, а первый столбец меньше x.Где x - это значение, с которого вы хотите начать сокращение выбросов.1/0 - это способ сообщить gnuplot, что точка недействительна, и она не будет построена.

...