윤곽선 / 열 오버레이가있는 산점도


23

나는 최근의 논문을 보충 하여이 음모 를 보았고 나는 R을 사용하여 그것을 재현 할 수 있기를 원합니다. 그것은 산점도입니다. 과도 플로팅 밀도. 어떻게해야합니까?

여기에 이미지 설명을 입력하십시오


5
StackOverflow 질문은 산점도 + 점을 포함하여 이러한 종류의 플롯에 대한 몇 가지 ggplot2 옵션을 보여줍니다 .
joran

답변:


30

다음은 물건 그리기에만 기본 기능을 사용하는 것입니다.

library(MASS)  # in case it is not already loaded 
set.seed(101)
n <- 1000
X <- mvrnorm(n, mu=c(.5,2.5), Sigma=matrix(c(1,.6,.6,1), ncol=2))

## some pretty colors
library(RColorBrewer)
k <- 11
my.cols <- rev(brewer.pal(k, "RdYlBu"))

## compute 2D kernel density, see MASS book, pp. 130-131
z <- kde2d(X[,1], X[,2], n=50)

plot(X, xlab="X label", ylab="Y label", pch=19, cex=.4)
contour(z, drawlabels=FALSE, nlevels=k, col=my.cols, add=TRUE)
abline(h=mean(X[,2]), v=mean(X[,1]), lwd=2)
legend("topleft", paste("R=", round(cor(X)[1,2],2)), bty="n")

여기에 이미지 설명을 입력하십시오

더 멋진 렌더링의 경우, 한 번 봐 가지고 할 수 있습니다 ggplot2stat_density2d(). 내가 좋아하는 또 다른 기능은 smoothScatter()다음 과 같습니다 .

smoothScatter(X, nrpoints=.3*n, colramp=colorRampPalette(my.cols), pch=19, cex=.8)

여기에 이미지 설명을 입력하십시오


2
지정된 Quantile / percentiles / deciles (또는 무엇을 가지고 있는지)를 포함하도록 등고선 그림을 제어 할 수 있다면 좋을 것입니다.
Roman Luštrik

Awsesome, 난 오랫동안 좋은 품질의 음모와 같은 smth를 찾고 있습니다
WAF

26

아무도 이것에 대해 ggplot2를 제안하지 않았습니까 ??

library(MASS)
library(ggplot2)
n <- 1000
x <- mvrnorm(n, mu=c(.5,2.5), Sigma=matrix(c(1,.6,.6,1), ncol=2))
df = data.frame(x); colnames(df) = c("x","y")

commonTheme = list(labs(color="Density",fill="Density",
                        x="RNA-seq Expression",
                        y="Microarray Expression"),
                   theme_bw(),
                   theme(legend.position=c(0,1),
                         legend.justification=c(0,1)))

ggplot(data=df,aes(x,y)) + 
  geom_density2d(aes(colour=..level..)) + 
  scale_colour_gradient(low="green",high="red") + 
  geom_point() + commonTheme

다음을 생성합니다.

실시 예 1

그러나 다음과 같은 다른 작업도 매우 쉽게 수행 할 수 있습니다.

ggplot(data=df,aes(x,y)) + 
  stat_density2d(aes(fill=..level..,alpha=..level..),geom='polygon',colour='black') + 
  scale_fill_continuous(low="green",high="red") +
  geom_smooth(method=lm,linetype=2,colour="red",se=F) + 
  guides(alpha="none") +
  geom_point() + commonTheme

다음을 생성합니다.

여기에 이미지 설명을 입력하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.