Разделитель тысяч в метке оси X или Y

r ggplot2 axis-labels

11799 просмотра

2 ответа

1147 Репутация автора

Я хотел бы иметь красивые надписи на оси Y. Например, я предпочитаю иметь 1000 вместо 1000. Как я могу выполнить это в ggplot? Вот минимальный пример:

x <- data.frame(a=c("a","b","c","d"), b=c(300,1000,2000,4000))
ggplot(x,aes(x=a, y=b))+
               geom_point(size=4)

Спасибо за любую подсказку.

Автор: giordano Источник Размещён: 02.11.2012 08:20

Ответы (2)


34 плюса

24399 Репутация автора

Решение

С scalesпакетами становятся доступными некоторые параметры форматирования: запятая, доллар, процент. Смотрите примеры в ?scale_y_continuous.

Я думаю, что это делает то, что вы хотите:

library(ggplot2)
library(scales)

x <- data.frame(a=c("a","b","c","d"), b=c(300,1000,2000,4000))

ggplot(x, aes(x = a, y = b)) + 
  geom_point(size=4) +
  scale_y_continuous(labels = comma)
Автор: Sandy Muspratt Размещён: 02.11.2012 09:55

2 плюса

624 Репутация автора

Украсьте тысячи, используя любой символ с основной format()функцией:

Пример 1 (через запятую).

format(1000000, big.mark = ",", scientific = FALSE)
[1] "1,000,000"

Пример 2 (через пробел).

format(1000000, big.mark = " ", scientific = FALSE)
[1] "1 000 000"

Примените format()к меткам осей ggplot анонимную функцию:

ggplot(x, aes(x = a, y = b)) +
        geom_point(size = 4) +
        scale_y_continuous(labels = function(x) format(x, big.mark = ",",
                                                       scientific = FALSE))
Автор: Georgie Shimanovsky Размещён: 24.11.2017 12:57
Вопросы из категории :
32x32