2010-10-22 4 views
16

Je travaille sur la finition un graphique généré en utilisant ggplot2 comme si ...Comment formater les valeurs numériques pour la légende ggplot2?

ggplot(timeSeries, aes(x=Date, y=Unique.Visitors, colour=Revenue)) 
+ geom_point() + stat_smooth() + scale_y_continuous(formatter=comma) 

Je joins le résultat et vous pouvez voir les valeurs numériques dans la légende du revenu n'ont pas une virgule. Comment puis-je ajouter une virgule à ces valeurs? J'ai pu utiliser scale_y_continuous pour l'axe, est-ce que cela peut aussi être utilisé pour la légende?

alt text

Répondre

10

Remarque 16/07/2014: la syntaxe dans cette réponse est obsolète depuis un certain temps. Utilisez metasequoia's answer!


Yep - juste une question d'obtenir la bonne couche de scale_colour_ compris. Essayez:

ggplot(timeSeries, aes(x = Date, y = Unique.Visitors, colour = Revenue)) + 
    geom_point() + 
    stat_smooth() + 
    scale_y_continuous(formatter = comma) + 
    scale_colour_continuous(formatter = comma) 

Personnellement, je également déplacer mon mappage de couleur à la couche de geom_point, de sorte qu'il ne vous donne pas cette ligne bizarre derrière le point dans la légende:

ggplot(timeSeries, aes(x = Date, y = Unique.Visitors)) + 
    geom_point(aes(colour = Revenue)) + 
    stat_smooth() + 
    scale_y_continuous(formatter = comma) + 
    scale_colour_continuous(formatter = comma) 
+0

Ce c'était bien. merci Matt. – analyticsPierce

33

Juste pour tenir à jour, en ggplot2_0.9.3 la syntaxe de travail est:

require(scales) 
ggplot(timeSeries, aes(x=Date, y=Unique.Visitors, colour=Revenue)) + 
    geom_point() + 
    stat_smooth() + 
    scale_y_continuous(labels=comma) + 
    scale_colour_continuous(labels=comma) 

voir aussi this exchange

+0

Utilisez '' scale_size_continuous (labels = virgule) '' si vous avez défini '' size'' (plutôt que '' colour'') à l'intérieur de '' aes() '', et de même avec shape et fill je suppose. – PatrickT

Questions connexes