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

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

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

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


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

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

Ответ 1

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

Ответ 2

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

Ответ 3

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

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

Ответ 4

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