相关疑难解决方法(0)

使用R在两条曲线下的阴影区域

我在R中编写了以下代码

x=seq(-7,10,length=200)
y1=dnorm(x,mean=0,sd=1)
plot(x,y1,type="l",lwd=2,col="red")
y2=dnorm(x,mean=3,sd=2)
lines(x,y2,type="l",lwd=2,col="blue")
Run Code Online (Sandbox Code Playgroud)

如何遮蔽两条曲线下的区域(称为两条曲线之间的重叠).

我将非常感谢任何建议.

plot r

26
推荐指数
3
解决办法
2万
查看次数

r - ggplot2 - 在两个geom_abline图层之间创建阴影区域

关于在ggplot2中使用阴影区域的帖子有一些 ,但我认为没有完全回答我的问题.我有两个斜坡用于跨越多个条件的线,我想遮蔽它们之间的区域.这是示例数据:

dat <- data.frame(cond1=c("a","a","b","b"),
              cond2=c("c","d","c","d"),
              x=c(1,5),
              y=c(1,5),
              sl=c(1,1.2,0.9,1.1),
              int=c(0,0.1,0.1,0),
              slopeU=c(1.1,1.3,1.2,1.2),
              slopeL=c(.9,1,0.7,1))
Run Code Online (Sandbox Code Playgroud)

这里,sl是来自单独拟合程序的平均斜率参数,slopeU并且slopeL表示每个条件中斜率估计的上下置信区域.拦截被限制为相同.以下代码使用一些分面绘制每个条件的最佳拟合线:

p <- ggplot(dat,aes(x=x,y=y,colour=cond1))
p <- p + facet_grid(. ~ cond2)
p <- p + geom_blank()
p <- p + geom_abline(aes(intercept=int,slope=sl,colour=cond1),data=dat)
p
Run Code Online (Sandbox Code Playgroud)

我想补充由定义的行intercept=int, slope=slopeU和intercept=int, slope=slopeL(例如,在对小区和阴影它们之间的区域alpha=.5中的相应COND1颜色).

我认识到,通过一些操作,我可以创建一个数据框,指定这些线的值至少两个x值,然后绘制相应的geom_ribbon或geom_polygon来创建阴影区域,但是我想找到一个更优雅的解决方案.或者是从斜坡手动指定一些坐标并截取唯一的方法?如何最好地创建所需的数据框(需要比原始框架具有更多的行,以考虑条件和x,y对的所有组合).

r ggplot2

14
推荐指数
1
解决办法
3789
查看次数

绘图中对角线上方的颜色区域为红色,下方为 R 中的绿色,带有 ggplot

我想用ggplot将对角线上方的区域着色为红色,将其下方的区域着色为绿色。我已经通读了 geom_ribbon,但据我所知,我只能指定 y 值。有人可以支持吗?非常感谢。

# Test data
df <- data.frame(
  x = sample(1:100, 100, replace=FALSE),
  y = sample(1:100, 100, replace=FALSE))

library(ggplot2)
g <- ggplot(data=df, aes(x=x, y=y))
g + 
   geom_point() +
   geom_abline(intercept = 0, slope = 1) 
   # + geom_ribbon(aes(ymin=2 , ymax=50), fill="red", alpha=0.2) not working
Run Code Online (Sandbox Code Playgroud)

r ggplot2

5
推荐指数
1
解决办法
682
查看次数

标签 统计

r ×3

ggplot2 ×2

plot ×1