如何在R的caret包中调整resample类对应的ggplot坐标轴?
解决caret resamples绘图时的离散值轴错误
你用caret训练两个模型后,通过resamples()对比性能,用ggplot绘图时想调整轴范围却报错:Error: Discrete value supplied to continuous scale。
错误原因
直接用ggplot(Resamples, metric = "RMSE")生成的图中,x轴是离散的模型名称(RF/RP),而你调用的scale_x_continuous()是用来设置连续型变量的轴刻度,两者类型不匹配,所以触发错误。另外你的需求应该是调整RMSE的显示范围,RMSE是图中的y轴变量,而非x轴。
解决方法
把scale_x_continuous()替换为scale_y_continuous(),即可正确设置RMSE的轴范围和刻度:
# 修正后的绘图代码 ggplot(Resamples, metric = "RMSE") + scale_y_continuous(limits = c(0,60), breaks = seq(0,60,10))
额外说明
如果确实需要调整x轴(比如修改模型名称的显示),应该用针对离散变量的scale_x_discrete(),示例如下:
ggplot(Resamples, metric = "RMSE") + scale_x_discrete(labels = c("随机森林", "决策树"))
内容的提问来源于stack exchange,提问作者Yang Yang
相关产品推荐
相关产品推荐

