Je trace des lignes avec ggplot2 comme ceci:
ggplot(iris, aes(Petal.Width,Petal.Length,color=Species)) + geom_line() + theme_bw()
.
Je trouve que les marques de légende sont petites, donc je veux qu'elles soient plus grandes. Si je modifie la taille, les lignes du tracé changent également:
ggplot(iris, aes(Petal.Width,Petal.Length,color=Species)) + geom_line(size=4) + theme_bw()
.
Mais je veux seulement voir des lignes épaisses dans la légende, je veux que les lignes de l'intrigue soient fines. J'ai essayé d'utiliser legend.key.size
mais cela change le carré de la marque, pas la largeur de la ligne:
library(grid) # for unit
ggplot(iris,aes(Petal.Width,Petal.Length,color=Species))+geom_line()+theme_bw() + theme(legend.key.size=unit(1,"cm"))
J'ai aussi essayé d'utiliser des points:
ggplot(iris,aes(Petal.Width,Petal.Length,color=Species)) + geom_line() + geom_point(size=4) + theme_bw()
Mais bien sûr, cela affecte à la fois l'intrigue et la légende:
Je voulais utiliser des lignes pour l'intrigue et des points/points pour la légende.
Je pose donc deux questions:
Pour modifier la largeur de ligne uniquement dans la légende, vous devez utiliser la fonction guides()
puis pour colour=
Utiliser guide_legend()
avec override.aes=
Et définir size=
. Cela remplacera la taille utilisée dans le tracé et utilisera une nouvelle valeur de taille juste pour la légende.
ggplot(iris,aes(Petal.Width,Petal.Length,color=Species))+geom_line()+theme_bw()+
guides(colour = guide_legend(override.aes = list(size=3)))
Pour obtenir des points dans la légende et des lignes dans la solution de contournement, ajoutez geom_point(size=0)
pour vous assurer que les points sont invisibles, puis dans guides()
définissez linetype=0
Pour supprimer les lignes et size=3
Pour obtenir des points plus importants.
ggplot(iris,aes(Petal.Width,Petal.Length,color=Species))+geom_line()+theme_bw()+
geom_point(size=0)+
guides(colour = guide_legend(override.aes = list(size=3,linetype=0)))