问题
我想我在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 显示问题