2017-08-18 3 views
1

J'ai produit un certain nombre de belles parcelles avec la fonction plotLearnerPrediction dans le paquet mlr pour R. Elles ressemblent à this. En examinant le code source de la fonction plotLearnerPrediction, il semble que les surfaces de couleur soient créées avec geom_tile. Une parcelle peut être par exemple par:Changer la couleur et la légende de plotLearnerPrediction Objet 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) 

Maintenant, je souhaite changer les couleurs, en utilisant un autre ton rouge, bleu et vert pour correspondre à celles de quelques autres parcelles que j'ai fait pour un projet. Pour cela j'ai essayé scale_fill_continuous et scale_fill_manual sans aucune chance (Erreur: valeur discrète fournie à l'échelle continue) Je souhaite également changer le titre de légende et les étiquettes pour chaque entrée de légende (que j'ai essayé de donner des paramètres appropriés aux scale_fill ci-dessus). Il y a beaucoup d'informations sur comment définir les couleurs de geom_tile lors de la production de l'intrigue, mais je n'ai trouvé aucune information sur la façon de faire cette post-production (c'est-à-dire dans l'objet plot de quelqu'un d'autre). Toute aide serait très appréciée.

+0

'plotLearnerPrediction' renvoie l'objet ggplot2, vous devriez donc être en mesure de changer les choses. Pouvez-vous poster un exemple complet de ce qui ne fonctionne pas s'il vous plaît? –

+0

Ce n'est pas que je me plains de choses qui ne fonctionnent pas, je ne sais pas comment changer les couleurs et d'autres choses comme indiqué ci-dessus. Si vous exécutez le code ci-dessus, vous obtenez un tracé qui ressemble à celui du lien. Étant donné que vous avez une telle intrigue, comment changeriez-vous les couleurs, le titre de légende et les étiquettes de légende? – Greforb

+0

Vous pouvez modifier certaines de ces choses à l'aide de 'theme()', par ex. 'p = plotLearnerPrediction (...); p + theme (legend.position = "top") ', mais tout ne peut pas être personnalisé de cette façon. Pour certaines choses, vous devrez modifier le code source. –

Répondre

0

Lorsque vous regardez dans le source code, vous voyez comment le graphique est généré et vous pouvez voir quelle échelle doit être écrasée ou définie.

Dans cet exemple, il est assez facile:

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