ggplot2中每个方面的不同功能曲线

QuishSwash

短的:

您如何在ggplot2的每个方面绘制不同的,用户/数据定义的曲线?


长:

我想将真实数据的多面散点图与用户定义的基于面变量的预测数据曲线叠加在一起,即为每个面使用不同的曲线。

这是一个玩具示例:

我们有关于在两个地点使用两种不同比率处理方法的红色或白色女王/王后连续两年玩耍的刺猬数量的数据。我们希望这些治疗方法能以每年0.5或1.5的指数速率改变刺猬的数量。所以数据看起来像

queen <- as.factor(c(rep("red", 8), rep("white",8)))
site <- as.factor(c(rep(c(rep(1,4), rep(2,4)),2)))
year <- c(rep(c(rep(1,2), rep(2,2)),4))
rate <- rep(c(0.5,1.5),8)
hedgehogs <- c(8,10,6,14,16,9,8,11,11,9,9,10,8,11,11,6)    
toy.data <- data.frame(queen, site, year, rate, hedgehogs)

使用以下内容,可以使网站按比率划分为四个不错的方面:

library("ggplot2")
ggplot(toy.data, aes(year, hedgehogs)) +
  geom_point(aes(colour=queen), size=10) +
  scale_colour_manual(values=c("red", "white")) +
  facet_grid(rate ~ site, labeller= label_both)

在此处输入图片说明

我想将速率曲线叠加到这些图上。

我们的预测曲线如下:

predict.hedgehogs <- function(year, rate){
  10*(rate^(year-1))
}

其中,刺猬的数量是根据速率的指数和年数乘以起始数量而预测的(此处为10个刺猬)。

我尝试了各种方式进行充实,stat_function并在正确的轨道上制作了一些东西,但并没有到那儿,

例如:

按照添加面特定的数据geom_hline请参阅此处的底部页面

facet.data <- data.frame(rate=c(0.5, 0.5, 1.5, 1.5),
                         site=c(1, 2, 1, 2))

然后画

ggplot(toy.data, aes(year, hedgehogs)) +
  geom_point(aes(colour = queen), size = 10) +
  scale_colour_manual(values = c("red", "white")) +
  facet_grid(rate ~ site, labeller = label_both) +
  stat_function(mapping = aes(x = year, y = predict.hedgehogs(year,rate)),
                fun = predict.hedgehogs,
                args = list(r = facet.data$rate), geom = "line")

在此处输入图片说明

stat_function为每个费率单独致电(即此策略):

ggplot(toy.data, aes(year, hedgehogs)) +
  geom_point(aes(colour=queen), size=10) +
  scale_colour_manual(values=c("red", "white")) +
  facet_grid(rate ~ site, labeller= label_both) +
  stat_function(fun=predict.hedgehogs, args=list(rate=0.5), geom="line", rate==0.5)+
  stat_function(fun=predict.hedgehogs, args=list(rate=1.5), geom="line", rate==1.5)
Error: `mapping` must be created by `aes()`

有什么想法吗?

QuishSwash

非常感谢@Roland的评论

如果我们toy.data从上述函数中添加预测数据predict.hedgehogs

pred.hogs <- predict.hedgehogs(year, rate)
toy.data <- data.frame(toy.data, pred.hogs)

我们可以绘制:

ggplot(toy.data, aes(year, hedgehogs)) +
  geom_point(aes(colour=queen), size=10) +
  scale_colour_manual(values=c("red", "white")) +
  facet_grid(rate ~ site) +
  geom_smooth(aes(x=year, y=pred.hogs), stat="identity", colour = "black")

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

ggplot2中每个方面的注释组均值

重置每个方面的颜色ggplot2 R

为ggplot2中的每个方面添加不同的辅助x轴

显示每个方面组 ggplot2 中的观察数

ggplot图中每个方面的不同颜色条

在ggplot2直方图中的每个方面选择不同的中断(不是比例问题)

使工具提示出现在绘图对象的不同ggplot2方面的对应点上

ggplot2:重新排列每个方面中从最高到最低的条

在 ggplot2 中保存每个修改的方面

使用ggplot2在不同图层中绘制多个ROC曲线

R ggplot:对于每个方面的问题,facet_grid具有不同的geom_rects

如何使用ggplot2更改每个方面的轴的限制和划分?处理“x$clone() 尝试应用非函数时出错”

如何使ggplot2中每个小平面的y轴缩放比例相同?

带有重要性注释的ggplot2 geom_pointrange中按方面不同的颜色值

使用x和y轴在ggplot2中的日志缩放方面有所不同

如何基于quantitle更改ggplot中每个方面的xlim或缩放?

将法线曲线叠加到ggplot2中的直方图

如何在ggplot2中显示曲线的方向?

如何在ggplot2中绘制参数曲线

Ggplot2中最佳拟合曲线的Y坐标

在ggplot2中按标签拟合分组曲线

绘图的两个方面的两个单独的y轴标题,同时使用ggplot2保留方面的顶部标签条

如何对每个ggplot方面的堆栈进行排序?

在R ggplot2中的相同因子内为每个点显示不同的符号

为ggplot2中的每个图例分配不同的背景颜色

如何用不同的水平线注释ggplot2中的每个条?

ggplot2中缺少功能区

(==)在hashCode方面的功能

为什么Purr中的地图功能无法使用ggplot2创建不同的图?