2017-08-18 4 views
1

Ich habe eine Reihe von schönen Plots mit der plotLearnerPrediction-Funktion in der mlr-Paket für R produziert. Sie sehen aus wie this. Aus dem Blick in den Quellcode der plotLearnerPrediction-Funktion sieht es so aus, als würden die Farbflächen mit geom_tile erstellt.Ändern Farbe und Legende von plotLearnerPrediction ggplot2 Objekt

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) 

nun die Farben zu ändern wünsche ich, einen anderen roten, blauen und grünen Ton die von einigen anderen Plots passen verwenden, die ich für ein Projekt gemacht haben: Ein Plot zum Beispiel kann durch gemacht werden. Dazu habe ich scale_fill_continuous und scale_fill_manual ohne Glück versucht (Fehler: Diskreter Wert an kontinuierliche Skala geliefert) Ich möchte auch den Legendentitel und die Beschriftungen für jeden Legendeneintrag ändern (was ich versucht habe, die obigen Parameter scale_fill zu geben). Es gibt viele Informationen darüber, wie man die geom_tile-Farben beim Erstellen des Plots einstellt, aber ich habe keine Informationen darüber gefunden, wie man diese Post-Produktion macht (d. H. Im Plot-Objekt eines anderen). Jede Hilfe würde sehr geschätzt werden.

+0

'plotLearnerPrediction' gibt das ggplot2 Objekt, so sollten Sie in der Lage sein, diese Dinge zu ändern. Kannst du bitte ein komplettes Beispiel posten, was nicht funktioniert? –

+0

Es ist nicht so, dass ich mich darüber beschwere, dass Dinge nicht funktionieren, ich weiß einfach nicht, wie ich die Farben und andere Sachen wie oben beschrieben ändern soll. Wenn Sie den obigen Code ausführen, erhalten Sie ein Diagramm, das wie das in der Verknüpfung aussieht. Wenn Sie einen solchen Plot haben, wie würden Sie die Farben, den Legendentitel und die Beschriftungen ändern? – Greforb

+0

Sie können einige dieser Dinge durch 'theme()', z. 'p = plotLearnerPrediction (...); p + theme (legende.position = "top") ', aber nicht alles kann so angepasst werden. Für einige Dinge müssen Sie den Quellcode ändern. –

Antwort

0

Wenn Sie in die source code schauen, sehen Sie, wie das Diagramm generiert wird und dann können Sie sehen, welche Skala überschrieben oder eingestellt werden muss.

In diesem Beispiel ist es ziemlich einfach:

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