【问题标题】:Overlay lines and hist with ggplot2用ggplot2覆盖线和hist
【发布时间】:2013-05-23 11:30:50
【问题描述】:

我正在使用 ggplot 创建一个包含大量情节的表格

a=rnorm(30)
b=a*a
c=rnorm(30)
d=c
l=runif(30)
m=l+3
data=data.frame(A=a,B=b,ss=1)
data=rbind(data,data.frame(A=c,B=d,ss=2))

ggplot()+ geom_line(data=data,aes(A,B,group=ss),col="red")+facet_wrap(~ ss,as.table=T 

在每个图中,我都必须重叠一个直方图。 我该怎么办?

【问题讨论】:

  • 请提供一个可重现的例子。

标签: r plot ggplot2


【解决方案1】:

这是一种方法:

ggplot() + 
  geom_line(data = data, aes(x = A, y = B), col = "red") +
  geom_histogram(data = data, aes(x = A), alpha = .5) +
  facet_wrap(~ ss,as.table=T) 

【讨论】:

  • 如果我必须记录的元素的行数多于 data.frame 中的元素,我该怎么办?
  • @Donbeo 首先,一个例子应该涵盖问题的所有关键点。要回答您的问题:您可以使用 hist 函数计算直方图条形图并手动修改条形图的高度。在这种情况下,必须使用geom_barplot 添加它们。
  • 好的,谢谢最后一个问题,当我使用 geom_histogram 时,如何设置 y 轴的概率?例如假设有 100 个样本而不是看到 60 我想看到 0.6
  • @Donbeo geom_histogram(data = data, aes(x = A, y = ..count../sum(..count..)), alpha = .5) 当然,这仅在首先绘制直方图时才有效。
  • 遗憾的是我无法绘制 histogram 。 (我应该改变一个安静的大程序......)还有其他方法吗?或者至少有什么方法可以设置 y 轴值?
猜你喜欢
  • 1970-01-01
  • 2021-03-14
  • 1970-01-01
  • 1970-01-01
  • 2021-09-06
  • 2014-03-01
  • 2022-07-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多