将直方图与R中的散点图结合起来
combine histogram with scatter plot in R
我正在尝试使用次轴在一个图中生成一个带有直方图和散点图的图。详细来说,这是一个示例数据:
#generate example data
set.seed(1)
a <- rnorm(200,mean=500,sd=35)
data <- data.frame(a = a,
b = rnorm(200, mean=10, sd=2),
c = c(rep(1,100), rep(0,100)))
# produce a histogram of data$a
hist(a, prob=TRUE, col="grey")
#add a density line
lines(density(a), col="blue", lwd=2)
#scatter plot
plot(data$a,data$b,col=ifelse(data$c==1,"red","black"))
我想做的是将直方图和散点图结合在一起。这意味着我的 x 轴将是 data$a
,我的主要 y 轴是直方图的 frequency/density
,我的次要 y 轴是 data$b
。
也许是这样的……
# produce a histogram of data$a
hist(a, prob=TRUE, col="grey")
#add a density line
lines(density(a), col="blue", lwd=2)
par(new = TRUE)
#scatter plot
plot(data$a,data$b,col=ifelse(data$c==1,"red","black"),
axes = FALSE, ylab = "", xlab = "")
axis(side = 4, at = seq(4, 14, by = 2))
这里有一个很好的博客 http://www.r-bloggers.com/r-single-plot-with-two-different-y-axes/。
基本上,正如博客所述,您需要做的是:
par(new = TRUE)
plot(data$a,data$b,col=ifelse(data$c==1,"red","black"), axes = F, xlab = NA, ylab = NA)
axis(side = 4)
我正在尝试使用次轴在一个图中生成一个带有直方图和散点图的图。详细来说,这是一个示例数据:
#generate example data
set.seed(1)
a <- rnorm(200,mean=500,sd=35)
data <- data.frame(a = a,
b = rnorm(200, mean=10, sd=2),
c = c(rep(1,100), rep(0,100)))
# produce a histogram of data$a
hist(a, prob=TRUE, col="grey")
#add a density line
lines(density(a), col="blue", lwd=2)
#scatter plot
plot(data$a,data$b,col=ifelse(data$c==1,"red","black"))
我想做的是将直方图和散点图结合在一起。这意味着我的 x 轴将是 data$a
,我的主要 y 轴是直方图的 frequency/density
,我的次要 y 轴是 data$b
。
也许是这样的……
# produce a histogram of data$a
hist(a, prob=TRUE, col="grey")
#add a density line
lines(density(a), col="blue", lwd=2)
par(new = TRUE)
#scatter plot
plot(data$a,data$b,col=ifelse(data$c==1,"red","black"),
axes = FALSE, ylab = "", xlab = "")
axis(side = 4, at = seq(4, 14, by = 2))
这里有一个很好的博客 http://www.r-bloggers.com/r-single-plot-with-two-different-y-axes/。
基本上,正如博客所述,您需要做的是:
par(new = TRUE)
plot(data$a,data$b,col=ifelse(data$c==1,"red","black"), axes = F, xlab = NA, ylab = NA)
axis(side = 4)