将直方图与R中的散点图组合

时间:2016-02-15 14:46:39

标签: r histogram scatter-plot

我试图使用辅助轴在一个图中生成直方图和散点图。详细地说,这是一个示例数据:

#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"))

enter image description here enter image description here

我想要做的是将直方图和散点图结合在一起。这意味着我的x轴将是data$a,我的主要y轴是直方图的frequency/density,而我的辅助y轴是data$b

2 个答案:

答案 0 :(得分:0)

也许是这样的......

# 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))

答案 1 :(得分:0)

这里有一个很好的博客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)
相关问题