Как избежать переполнения (для точек) с помощью base-graph? - PullRequest
14 голосов
/ 27 августа 2010

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

Тем не менее, остается одна проблема - переполнение.Например, отмеченная точка выглядит так, как будто она отражает одну точку данных, но на самом деле в этом месте существует 5 точек данных с одинаковым значением.
Поэтому я хотел бы знать, есть ли способ справиться сналожение в base graph с использованием points в качестве функции.
Было бы идеально, если, например, соответствующие точки становятся темнее, или толще, или ...

Выполнение вручную невариант (слишком много графиков и точек, как это).Более того, ggplot2 - это не то, что я хочу научиться иметь дело с этой единственной проблемой (одна из причин в том, что мне нравятся двойные оси, что не указано в ggplot2).


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

Эта функциятеперь доступен как raw.means.plot и raw.means.plot2 в пакете plotrix (на CRAN).

Ответы [ 4 ]

14 голосов
/ 27 августа 2010

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

X <- rep(1:10,10)
Z <- as.factor(sample(letters[1:10],100,replace=T))

plot(jitter(as.numeric(Z),factor=0.2),X,xaxt="n")
axis(1,at=1:10,labels=levels(Z))
8 голосов
/ 27 августа 2010

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

4 голосов
/ 27 августа 2010

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

Для примера графика прямое дрожание или альфа-смешение, вероятно, лучше, но в некоторых других случаях может быть полезен график коврика.

3 голосов
/ 27 августа 2010

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

...