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

时间:2019-07-17 16:55:15

标签: r ggplot2 facet legend-properties sjplot

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

plot_model

enter image description here

我有两个自定义问题:

1)构面顺序:构面顺序基于结果级别的默认字母顺序(“扩展”,然后是“第一张图片”,然后是“多张图片”)。有什么方法可以调整这个?在运行和绘制模型之前,我尝试使用plot1 <- plot_model(multinomialmodel , type = "pred", terms = c("DSA", "ASA[meansd]") (例如herefactor())来重新设置级别,但这并没有导致最终构面顺序发生任何变化。也许相反,如第一个解决方案中提供的here所示,是通过ggplot2实现的?

2)图例标签:图例当前使用ASA的-1 SD,平均值和+1 SD值标记绘制的线;有没有办法将这些标签调整为改为只说“ -1 SD”,“平均值”和“ +1 SD”而不是原始值?

谢谢!

1 个答案:

答案 0 :(得分:1)

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

sjPlot::plot_model()

example plot

您尝试进行重构的操作无效,因为p2 <- p1 p2$data$response.level <- factor(p2$data$response.level, levels = c("Multiple Pics", "First Pic", "Expand")) p2 不予理he。解决构面重新排序的一种方法是生成上面的初始图,并用包含所需顺序的因子版本替换数据中的构面变量,如下所示:

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

re-ordered facets

最后,要解决图例标签问题,我们可以只用包含您想要的标签的色标替换色标:

Theme(
  data: ThemeData(
    brightness: Brightness.dark
  ), // or shorthand => ThemeData.dark()
  child: FilterChip(
    label: Text('My chip'),
    onSelected: (value) {
      // ...
    },
  ),
);

desired plot