问题
我想我在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))
这是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)
模型和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.")
我尝试过什么
经过一些测试后,似乎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
图解
ggplot
显示问题