在混合模型图中将两个图合并为一个图

诺鲁齐安

在下面的图表中,d_mathd_hyp是每个{0,1}变量。鉴于这一事实,在下面的图表中,我想知道是否可以将两个图表合并为一个,就像下面所需图表一样

ps。我对任何R包都开放。

multivariate <- read.csv('https://raw.githubusercontent.com/hkil/m/master/bv.csv')

library(nlme)
library(effects) # for plot

m2 <- lme(var ~ 0 + d_math + d_hyp + d_math:I(grade-2) + d_hyp:I(grade-2),
          random = ~ 0 + d_math + d_hyp + d_math:I(grade-2) + d_hyp:I(grade-2) | id, data = multivariate,
          na.action = na.omit, weights = varIdent(c(hyp=.3), form = ~1|grp),
          control = lmeControl(maxIter = 200, msMaxIter = 200, niterEM = 50,
                               msMaxEval = 400))

plot(allEffects(m2), multiline = TRUE, x.var="grade")

在此处输入图片说明

期望的:

在此处输入图片说明

阿克伦

我们可以tidyverse用来创建一个单图。环在所述listallEffects带有输出imap,转换到tibbleselect所需要的列,行绑定列表中的元素,以单一的数据集(_dfr),unite两列到一个单一的,和使用ggplot用于绘图

library(dplyr)
library(tidyr)
library(purrr)
library(ggplot2)
imap_dfr(allEffects(m2), ~ as_tibble(.x) %>% 
     mutate(dname = grep("d_", names(.), value = TRUE)) %>%
     select(dname, dvalue = starts_with('d_'), grade, fit) %>%
     mutate(grp = .y)) %>%
   unite(dname, dname, dvalue, sep=" = ") %>% 
   ggplot(aes(x = grade, y = fit, color = dname)) +
        geom_line() +
        theme_bw() #+
        # facet_wrap(~ grp)

-输出

在此处输入图片说明


如果我们希望标签位于行尾,请使用 directlabels

library(directlabels)
imap_dfr(allEffects(m2), ~ as_tibble(.x) %>% 
     mutate(dname = grep("d_", names(.), value = TRUE)) %>%
     select(dname, dvalue = starts_with('d_'), grade, fit) %>%
     mutate(grp = .y)) %>%
   unite(dname, dname, dvalue, sep=" = ") %>% 
   ggplot(aes(x = grade, y = fit, group = dname, color = dname)) +
        geom_line() +
        theme_bw() +
        scale_colour_discrete(guide = 'none') +
        geom_dl(aes(label = dname), method="last.qp", cex = 0.8)

此外,可以将每个“ dvalue”作为 facet

imap_dfr(allEffects(m2), ~ as_tibble(.x) %>% 
     mutate(dname = grep("d_", names(.), value = TRUE)) %>%
     select(dname, dvalue = starts_with('d_'), grade, fit) %>%
     mutate(grp = .y)) %>%
   unite(dname, dname, dvalue, sep=" = ", remove = FALSE) %>% 
   ggplot(aes(x = grade, y = fit, group = dname, color = dname)) +
        geom_line() +
        theme_bw() +
        scale_colour_discrete(guide = 'none') +
        geom_dl(aes(label = dname), method="last.qp", cex = 0.8) + 
        facet_wrap(~ dvalue)

在此处输入图片说明


或者,如果我们只需要特定级别,那么 filter

imap_dfr(allEffects(m2), ~ as_tibble(.x) %>% 
     mutate(dname = grep("d_", names(.), value = TRUE)) %>%
     select(dname, dvalue = starts_with('d_'), grade, fit) %>%
     mutate(grp = .y)) %>%
   unite(dname, dname, dvalue, sep=" = ") %>%
   filter(dname  %in% c("d_hyp = 1", "d_math = 1")) %>% 
   ggplot(., aes(x = grade, y = fit, colour = dname, group = dname)) + 
     geom_line() + 
     scale_colour_discrete(guide = 'none') +  
     geom_dl(aes(label = dname), method="last.qp", cex = 0.6) + 
     theme_bw()

在此处输入图片说明

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在一个较大的图中将循环内生成的图合并为子图

来自分类Dev

如何使用gnuplot将两个箱须图合并为一个

来自分类Dev

如何在Python中将具有相同轴的两个箱形图合并为一个箱形图

来自分类Dev

在一个图中显示两个不同的图

来自分类Dev

在一个图中绘制两个图

来自分类Dev

一个绘图中的两个图 matlab

来自分类Dev

将两个条形图合并为一张图

来自分类Dev

有没有一种方法可以将来自两个单独的堆叠条形图的列合并为一个图?

来自分类Dev

plot(var())显示两个不同的图,如何将它们合并为一个?也有两个y轴

来自分类Dev

如何在C#中将两个StringCollection合并/合并为一个

来自分类Dev

如何在Java中将两个JSON字符串合并为一个

来自分类Dev

如何在jQuery中将两个事件处理程序合并为一个?

来自分类Dev

无法从mysql中将两个查询的结果合并为一个

来自分类Dev

在pygame中将两个图像合并为一个

来自分类Dev

在Oracle SQL中将两个表合并为一个

来自分类Dev

在Python中将两个文本合并为一个

来自分类Dev

在R中将两个“ lm”对象合并为一个

来自分类Dev

在Python中将两个日期列合并为一个

来自分类Dev

在Python中将两个列表元素合并为一个?

来自分类Dev

在mongodb中将两个键合并为一个键

来自分类Dev

在unity3d中将两个不同的纹理合并为一个

来自分类Dev

在Codeigniter中将两个列合并为一个列

来自分类Dev

在 angular2 中将两个 URL 合并为一个 - ionic2

来自分类Dev

在 Jquery/Javascript 中将两个 json 对象合并为一个 json 对象

来自分类Dev

如何在 Kotlin 中将两个不同的类数据合并为一个

来自分类Dev

在SQL中将具有多个公共列的两个表合并为一个

来自分类Dev

如何在响应中将两个变量合并为一个?

来自分类Dev

Tensorflow Keras:将两个不同的模型输出合并为一个

来自分类Dev

将不同的grViz合并为一个图

Related 相关文章

  1. 1

    如何在一个较大的图中将循环内生成的图合并为子图

  2. 2

    如何使用gnuplot将两个箱须图合并为一个

  3. 3

    如何在Python中将具有相同轴的两个箱形图合并为一个箱形图

  4. 4

    在一个图中显示两个不同的图

  5. 5

    在一个图中绘制两个图

  6. 6

    一个绘图中的两个图 matlab

  7. 7

    将两个条形图合并为一张图

  8. 8

    有没有一种方法可以将来自两个单独的堆叠条形图的列合并为一个图?

  9. 9

    plot(var())显示两个不同的图,如何将它们合并为一个?也有两个y轴

  10. 10

    如何在C#中将两个StringCollection合并/合并为一个

  11. 11

    如何在Java中将两个JSON字符串合并为一个

  12. 12

    如何在jQuery中将两个事件处理程序合并为一个?

  13. 13

    无法从mysql中将两个查询的结果合并为一个

  14. 14

    在pygame中将两个图像合并为一个

  15. 15

    在Oracle SQL中将两个表合并为一个

  16. 16

    在Python中将两个文本合并为一个

  17. 17

    在R中将两个“ lm”对象合并为一个

  18. 18

    在Python中将两个日期列合并为一个

  19. 19

    在Python中将两个列表元素合并为一个?

  20. 20

    在mongodb中将两个键合并为一个键

  21. 21

    在unity3d中将两个不同的纹理合并为一个

  22. 22

    在Codeigniter中将两个列合并为一个列

  23. 23

    在 angular2 中将两个 URL 合并为一个 - ionic2

  24. 24

    在 Jquery/Javascript 中将两个 json 对象合并为一个 json 对象

  25. 25

    如何在 Kotlin 中将两个不同的类数据合并为一个

  26. 26

    在SQL中将具有多个公共列的两个表合并为一个

  27. 27

    如何在响应中将两个变量合并为一个?

  28. 28

    Tensorflow Keras:将两个不同的模型输出合并为一个

  29. 29

    将不同的grViz合并为一个图

热门标签

归档