如何在rms包中修复ggplot调用

Ved*_*dda 6 r ggplot2

问题

我想我在rms包函数中发现了一个错误,ggplot.Predict()但我无法弄清楚如何修复它.使用此ggplot.Predict()功能时,图例颜色不同,图表未正确对齐; 但是,使用基础R图形plot()工作正常,所以我试图弄清楚ggplot.Predict()函数调用发生了什么.

我在R中的限制ggplot导致我在函数中进行了一些初步测试 - 请参阅下面我尝试过的内容 - 但我不知道在包中的函数调用中如何解决问题.我已经向软件包维护者提出了一个问题,并要求我查看是否可以修复它,但是我已经用尽了我的知识并且正在寻求帮助来确定问题.


重要提示:

这是ggplot来自rms包裹的电话:

ggplot(zz, aes(x=.xx., y=.yhat, color=.cond)) + geom_line() + 
    coord_cartesian(ylim=c(2, 12)) + labs(x=expression(x1), y=\"y1\") + 
    theme(plot.margin = grid::unit(rep(0, 4), 'cm')) + colFun(name=expression(Set))
Run Code Online (Sandbox Code Playgroud)

这是rms包中函数的链接:

有一个与已弃用的参数有关的错误消息,并且在测试后与该问题无关.

错误:

另外:警告消息:show_guide已被弃用.请show.legend改用.


我已经建模了两个多元回归,并希望用它们绘制拟合值ggplot.Predict().请参阅问题底部的图表.

样本数据

dd = data.frame(x1 = 2 + (runif(200) * 6), 
  x12 = 100 + (runif(200) * 6), 
  x13 = 1400 + (runif(200) * 600))
dd$y1 = rep(c(1.2, 1.4), each = 100) * dd$x1 + (runif(200) / 5)
Run Code Online (Sandbox Code Playgroud)

模型和ggplot代码:

library(rms)
ddist <- datadist(dd)
options("datadist" = "ddist")

g <- ols(y1 ~ x1 + x12 + x13, data = dd, x = TRUE, y = TRUE)
a <- Predict(g)

h <- ols(y1 ~ I(x1^2) + I(x12^2) + I(x13^2), data = dd, x = TRUE, y = TRUE)
b <- Predict(h)

p <- rbind(a,b)
ggplot(p, group = ".set.") 
Run Code Online (Sandbox Code Playgroud)

我试过的

在经过一些测试后,似乎colFun()会导致一些问题(见第376和474行).在第376行,如果aestype[1]更改为,aestype[2]则调色板在整个绘图中更改为相同,但图例颜色不同.在第474行,它似乎检查图的数量并分配调色板,但我不完全确定.

  376:   colFun <- if(aestype[1] == 'color') colorscale else
  474:   colFun <- if(aestype[j] == 'color') colorscale else
Run Code Online (Sandbox Code Playgroud)

地块

  • ggplot 显示问题

在此输入图像描述

  • R Base plot 在此输入图像描述

  • ggplot变更后aestype[1]aestype[2]

在此输入图像描述