Как избежать пересчета (для точек) с помощью базового графика?

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

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

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


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

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

4 ответов


стандартный подход-добавить некоторый шум к данным перед построением графика. 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))

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


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

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


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