首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ggpmisc的stat_poly_eq在公式中显示不同的y标签

如何使用ggpmisc的stat_poly_eq在公式中显示不同的y标签
EN

Stack Overflow用户
提问于 2019-10-14 17:07:30
回答 1查看 129关注 0票数 4

我正在尝试使用ggpmiscstat_poly_eq函数在绘图上显示方程式。

我的问题是如何通过y1=...y2=...引用key参数来更改等式中的y= ...

我试图在映射中添加eq.with.lhs参数,但它无法识别该参数。我试图向eq.with.lhs参数传递一个向量,但它与每个等式中的两个元素重叠……

你有更好的主意吗?

在最后一种情况下,我可以在自己计算方程系数后使用geom_text,但它似乎是一种效率较低的解决问题的方法。

这是我的问题的再现。

代码语言:javascript
复制
data <- data.frame(x = rnorm(20)) %>% 
    mutate(y1 = 1.2*x + rnorm(20, sd=0.2),
           y2 = 0.9*x + rnorm(20, sd=0.3)) %>%
    gather(value = value, key = key, -x)  

ggplot(data, aes(x = x, y = value)) +
    geom_point(aes(shape = key, colour = key)) + 
    stat_poly_eq(aes(label = ..eq.label.., colour = key), 
                 formula = y  ~ poly(x, 1, raw = TRUE),
                 eq.x.rhs = "x",
                 # eq.with.lhs = c(paste0(expression(y[1]), "~`=`~"),
                 #                 paste0(expression(y[2]), "~`=`~")),
                 eq.with.lhs = paste0(expression(y[ind]), "~`=`~"),
                 parse = TRUE) +
    ylab(NULL)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-14 19:54:55

我真的不确定是否可以通过ggpmisc来实现,但是一旦构建了图,您就可以更改数据,如下所示:

代码语言:javascript
复制
library(tidyverse)
library(ggpmisc)

data <- data.frame(x = rnorm(20)) %>% 
    mutate(y1 = 1.2*x + rnorm(20, sd=0.2),
           y2 = 0.9*x + rnorm(20, sd=0.3)) %>%
    gather(value = value, key = key, -x)  

p <- ggplot(data, aes(x = x, y = value)) +
    geom_point(aes(shape = key, colour = key)) + 
    stat_poly_eq(aes(label = ..eq.label.., colour = key), 
                 formula = y  ~ poly(x, 1, raw = TRUE),
                 eq.x.rhs = "x",
                 eq.with.lhs = paste0(expression(y), "~`=`~"),
                 parse = TRUE) +
    ylab(NULL)
temp <- ggplot_build(p)
temp$data[[2]]$label <- temp$data[[2]]$label %>% 
    fct_relabel(~ str_replace(.x, "y", paste0("y[", 1:2, "]")))
grid::grid.newpage()
grid::grid.draw(ggplot_gtable(temp))

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58373454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档