r - 使用 sjplot 的 plot_model 函数时调整刻面顺序和图例标签

标签 r ggplot2 facet legend-properties sjplot

我已经成功地使用sjplotplot_model 函数来绘制多项逻辑回归模型。回归包含一个结果(寻求信息,具有 3 个水平)和 2 个连续预测变量(DSA、ASA)。我还更改了 plot_model 中的 ASA 值,以便根据 ASA 平均值和 SD 绘制预测效果结果:

plot1 <- plot_model(multinomialmodel , type = "pred", terms = c("DSA", "ASA[meansd]")

enter image description here

我有两个定制问题:

1) 分面顺序:分面顺序基于结果级别的默认字母顺序(“展开”,然后是“第一张图片”,然后是“多张图片”)。有没有办法调整这个?在运行和绘制模型之前,我尝试使用 factor()(例如 hereggplot2)对级别进行重新排序,但这并没有导致结果发生任何变化面顺序。也许可以通过 ggplot2 来代替,如提供的第一个解决方案中的示例 here

2) 图例标签:图例目前用 ASA 的 -1 标准差、平均值和 +1 标准差值标记绘制的线条;有没有办法调整这些标签,而不是简单地说“-1 SD”、“平均值”和“+1 SD”而不是原始值?

谢谢!

最佳答案

首先,我使用您提供的数据复制您的绘图:

library(dplyr)
library(readr)
library(nnet)
library(sjPlot)

"ASA,DSA,Info_Sought
-0.108555801,0.659899854,First Pic
0.671946671,1.481880373,First Pic
2.184170211,-0.801398848,First Pic
-0.547588442,1.116555698,First Pic
-1.27930951,-0.299077419,First Pic
0.037788412,1.527545958,First Pic
-0.74271406,-0.755733264,Multiple Pics
1.20854212,-1.166723523,Multiple Pics
0.769509479,-0.390408588,Multiple Pics
-0.450025633,-1.02972677,Multiple Pics
0.769509479,0.614234269,Multiple Pics
0.281695434,0.705565438,Multiple Pics
-0.352462824,-0.299077419,Expand
0.671946671,1.481880373,Expand
2.184170211,-0.801398848,Expand
-0.547588442,1.116555698,Expand
-0.157337206,1.070890114,Expand
-1.27930951,-0.299077419,Expand" %>% 
  read_csv() -> d

multinomialmodel <- multinom(Info_Sought ~ ASA + DSA, data = d)

p1 <- plot_model(multinomialmodel , 
                 type = "pred", 
                 terms = c("DSA", "ASA[meansd]"))
p1

example plot

您重构的尝试没有奏效,因为 sjPlot::plot_model() 没有注意到。解决分面重新排序的一种方法是生成一个如上所述的初始图,并将数据中的分面变量替换为包含所需顺序的因子版本,如下所示:

p2 <- p1
p2$data$response.level <- factor(p2$data$response.level, 
                                 levels = c("Multiple Pics", "First Pic", "Expand"))
p2

re-ordered facets

最后,为了解决图例标签问题,我们可以将色标替换为包含您所需标签的色标:

p2 + 
  scale_color_discrete(labels = c("-1 SD", "mean", "+1 SD"))

desired plot

关于r - 使用 sjplot 的 plot_model 函数时调整刻面顺序和图例标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57080850/

相关文章:

r - 如何在不预先知道数据是离散还是连续的情况下自定义ggplot2的默认调色板?

r - 创建具有固定边距的列联表

r - 躲避离散的 y 值,geom_segment()

r - 修改ggplot2中的字体

search - Solr Facetting - 显示前 10 个结果和其他

r - 为多个 shapefile 保存 writeOGR

r - Igraph:导出具有顶点和边属性的列表顶点

r - 在 R 中制作 WCS Munsell 颜色图表,scale_fill_manual,ggplot2 中的顺序问题

c# - 在 algolia 中返回所有方面的数据

r - 在ggplot2中为每个facet_wrap网格放置一个图例