J'ai l'intrigue suivante comme ci-dessous. Il a été créé avec cette commande:
library(ggplot2)
df <- data.frame(cond = factor(rep(c("A", "B"), each = 200)),
rating = c(rnorm(200), rnorm(200, mean=.8)))
ggplot(df, aes(x=rating, fill=cond)) +
geom_density(alpha = .3) +
xlab("NEW RATING TITLE") +
ylab("NEW DENSITY TITLE")
Maintenant , la prochaine chose que je veux faire est de modifier le titre de la légende de cond en nouvelle légende TITRE .
Donc, ce que j'ai fait, c'est simplement d'ajouter la ligne suivante, ajoutez la fin du code ci-dessus:
+labs(colour="NEW LEGEND TITLE")
Mais ça ne marche pas. Quelle est la bonne façon de procéder?
labs(fill="xyz")
devrait fairegeom_
déclarations, je recommande la réponse sur stackoverflow.com/a/38485985/1169233 , c'est la seule qui a fonctionné pour moi.Réponses:
Cela devrait fonctionner:
(Ou bien)
la source
p$labels$fill <- "New Legend Title"
p$labels$fill
n'a pas fonctionné pour moi. Avecggplot2_2.1.0
j'utilisep$labels$colour <- "New legend title"
p$labels$fill
est bien mais si vous utilisez plus d'une variable esthétique (type de ligne, couleur, forme) dans aes, vous devez les changer pour chacune séparément.Je n'y ai pas beaucoup creusé mais parce que vous avez utilisé fill = cond dans ggplot (),
pourrait ne pas avoir fonctionné. Cependant, si vous remplacez la couleur par le remplissage , cela fonctionne!
Cela a fonctionné pour moi dans ggplot2_2.1.0
la source
p + guides(fill=guide_legend(title="New Legend Title"))
Puisque vous avez deux densités, j'imagine que vous voudrez peut-être définir vos propres couleurs avec
scale_fill_manual
.Si oui, vous pouvez faire:
la source
Aucun des codes ci-dessus n'a fonctionné pour moi.
Voici ce que j'ai trouvé et cela a fonctionné.
labs(color = "sale year")
Vous pouvez également donner un espace entre le titre et l'affichage en ajoutant
\n
à la fin.labs(color = 'sale year\n")
la source
fill
lieu decolor
(oucolour
) est nécessaire? Compte tenu de l'heure de la question, il est possible qu'elle soitggplot2
liée à la version.Étant donné que dans votre code, vous avez utilisé
ggplot(data, fill= cond)
pour créer l'histogramme, vous devez ajouter le titre de la légende en utilisant également "remplir" dans la section d'étiquette, c'est-à-dire+labs(fill="Title name")
. Si vous utilisiez un type de tracé différent où le code était ggplot (data, color = cond), alors vous pourriez utiliser+labs(colour= "Title Name")
. En résumé, l'argument lab doit correspondre à l'argument aes.J'ai l'habitude
+ guides(fill=guide_legend("my awesome title"))
de changer le titre de la légende sur les tracés geom_bar mais cela ne semble pas fonctionner pour geom_point.la source
geom_point()
, cela fonctionne pour moi:guides(color=guide_legend("Type:"))
guides(color=guide_legend("Score Ranking:"))
Il existe une autre réponse très simple qui peut fonctionner pour certains graphiques simples.
Ajoutez simplement un appel à guide_legend () dans votre graphique.
Comme le montrent les très beaux documents ggplot .
Si cela ne fonctionne pas, vous pouvez définir plus précisément les paramètres de votre guide avec un appel aux guides :
Vous pouvez également faire varier la forme / couleur / taille en spécifiant également ces paramètres pour votre appel
guides
.la source
qplot(…) + guides(color=guide_legend(title="sale year"))
fonctionnéJuste pour ajouter à la liste (les autres options ici ne fonctionnaient pas pour moi), vous pouvez également utiliser la fonction update_labels pour ggplot:
Cela vous permettra également de modifier les étiquettes des axes x et y, avec des lignes distinctes:
la source
J'ai remarqué qu'il y a deux façons de changer / spécifier legend.title pour ggboxplot ():
Le code est modifié sur la base de l' exemple de GitHub .
la source
J'utilise un facet_wrap dans mon ggplot et aucune des solutions suggérées n'a fonctionné pour moi, sauf la solution d'ArnaudA:
la source
Beaucoup de gens passent beaucoup de temps à changer les étiquettes, les étiquettes de légende, les titres et les noms des axes car ils ne savent pas qu'il est possible de charger des tables dans R contenant des espaces
" "
. Vous pouvez cependant le faire pour gagner du temps ou réduire la taille de votre code, en spécifiant les séparateurs lorsque vous chargez une table par exemple délimitée par des tabulations (ou tout autre séparateur que par défaut ou un seul espace):ou en utilisant les paramètres de chargement par défaut du format csv:
Cela signifie que vous pouvez conserver directement le nom en
"NEW LEGEND TITLE"
tant que nom de colonne (en-tête) dans votre fichier de données d'origine pour éviter de spécifier un nouveau titre de légende dans chaque tracé.la source
ggplot(df) + labs(legend = '<legend_title>')
la source