Подтвердить что ты не робот

Как форматировать числовые значения для легенды ggplot2?

Я работаю над окончанием графика, сгенерированного с помощью ggplot2, например...

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

Я приложил результат, и вы можете видеть, что числовые значения в легенде для Дохода не имеют запятой. Как добавить запятую к этим значениям? Я мог использовать scale_y_continuous для оси, может ли это использоваться и для легенды?

alt text

4b9b3361

Ответ 1

Примечание 2014-07-16: синтаксис в этом ответе был устаревшим в течение некоторого времени. Используйте ответ metasequoia!


Yep - только вопрос получения правильного уровня scale_colour_. Попробуйте:

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

Я лично также перенес свое цветовое сопоставление на слой geom_point, чтобы он не дал вам эту нечетную строку за точкой в ​​легенде:

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)

Ответ 2

Просто чтобы сохранить текущий, в ggplot2_0.9.3 рабочий синтаксис:

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)

Также см. этот обмен