2017-08-18 39 views
1

我一直在用R的mlr软件包中的plotLearnerPrediction函数生成一些不错的绘图。它们看起来像this。通过查看plotLearnerPrediction函数的源代码,它看起来像使用geom_tile制作颜色表面。更改颜色和plotLearnerPrediction的图例ggplot2对象

library(mlr) 
data(iris) 

#make a learner 
lrn <- "classif.qda" 
#make a task 
my.task <- makeClassifTask(data = iris, target = "Species") 
#make plot 
plotLearnerPrediction(learner = lrn, task = my.task) 

现在我想改变颜色,使用另一种红色,蓝色和绿色的色调相匹配那些我已经为一个项目做了一些其他的地块: 的曲线可以通过例如进行。为此,我尝试scale_fill_continuousscale_fill_manual没有任何运气(错误:离散值提供给连续缩放)我也希望更改图例标题和每个图例条目的标签(我试图给上述scale_fill的适当参数)。在制作剧情时,如何设置geom_tile的颜色有很多信息,但我还没有找到关于如何进行后期制作的任何信息(即在其他人的剧情对象中)。任何帮助将非常感激。

+0

'plotLearnerPrediction'返回GGPLOT2对象,所以你应该能够改变这些东西。你可以发布一个完整的例子什么不起作用吗? –

+0

这不是我抱怨东西不工作,我只是不知道如何改变颜色和其他东西,如上所述。如果你运行上面的代码,你会得到一个看起来像链接中的图。鉴于你有这样一个情节,你会如何改变颜色,图例标题和图例标签? – Greforb

+0

你可以通过'theme()'来修改其中的一些东西,例如'p = plotLearnerPrediction(...); p +主题(legend.position =“top”)',但并非所有东西都可以通过这种方式进行定制。对于某些事情你必须修改源代码。 –

回答

0

当您查看source code时,您会看到图是如何生成的,然后您可以看到哪个比例尺必须被覆盖或设置。

在这个例子中是相当容易:

g = plotLearnerPrediction(learner = lrn, task = my.task) 
library(ggplot2) 
g + scale_fill_manual(values = c(setosa = "yellow", versicolor = "blue", virginica = "red")) 

enter image description here