Графики рассеяния могут быть трудно интерпретировать, когда много точек перекрываются, поскольку такое перекрытие скрывает плотность данных в определенном регионе. Одним из решений является использование полупрозрачных цветов для начерченных точек, так что непрозрачная область указывает на то, что в этих координатах присутствуют многие наблюдения.
Ниже приведен пример моего черно-белого решения в R:
MyGray <- rgb(t(col2rgb("black")), alpha=50, maxColorValue=255)
x1 <- rnorm(n=1E3, sd=2)
x2 <- x1*1.2 + rnorm(n=1E3, sd=2)
dev.new(width=3.5, height=5)
par(mfrow=c(2,1), mar=c(2.5,2.5,0.5,0.5), ps=10, cex=1.15)
plot(x1, x2, ylab="", xlab="", pch=20, col=MyGray)
plot(x1, x2, ylab="", xlab="", pch=20, col="black")
Однако недавно я встретил эту статью в PNAS, которая использовала аналогичный подход, но использовала окраску тепловой карты в противоположность непрозрачности как показатель того, сколько точек было перекрыто. Статья представляет собой Open Access, поэтому каждый может загрузить .pdf и посмотреть на рисунке 1, который содержит соответствующий пример графика, который я хочу создать. Раздел методов этой статьи показывает, что анализ был выполнен в Matlab.
Для удобства здесь представлена небольшая часть рисунка 1 из приведенной выше статьи:
Как создать график рассеяния в R, который использовал цвет, а не непрозрачность, как индикатор плотности точек?
Для начала пользователи R могут получить доступ к этой цветовой схеме Matlab в библиотеке install.packages("fields")
, используя функцию tim.colors()
.
Есть ли простой способ сделать фигуру, похожую на фигуру 1 этой статьи, но в R? Спасибо!