R bar_geom разделитель тысяч в барах - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть фрейм данных, который состоит из разных рубрик и просмотров страниц, как в следующем примере:

categories| pageviews
health    |  700000
recipes   |  1000000
diet      |  500000

Теперь я строю его с помощью следующего кода, чтобы получить диаграмму:

p <- ggplot(df, aes(reorder(pagePathLevel1, -pageviews), pageviews))
p + geom_bar(fill = "#00CC33", stat = "identity") +
  labs(x="categories", y="pageviews") +
  scale_y_continuous(labels=function(x) format(x, big.mark = ".", scientific = FALSE)) +
  geom_text(aes(label=pageviews), size=4, vjust = 1.2, color = "darkgreen")

К сожалению, функция scale_y_continuoius применяется только к масштабу оси, но не к значениям в geom_text. Можно ли также получить разделитель тысяч в значениях, отображаемых в барах?

1 Ответ

0 голосов
/ 27 апреля 2018

Вы можете изменить столбец, лежащий в основе вашей label эстетики, прежде чем рисовать сюжет, например:

library(scales)

df <- df %>%
  mutate(label.pageviews = gsub("\\,",".", scales::comma(pageviews)))

По существу, для вставки разделителей используется функция comma из пакета scales. Поскольку вам нужны точки вместо запятых, часть gsub заменяет одну на другую.

Затем вам нужно только заменить старую эстетику label на только что сгенерированный столбец, а затем получить что-то вроде этого:

 p + geom_bar(fill = "#00CC33", stat = "identity") +
               labs(x="categories", y="pageviews") +
               scale_y_continuous(labels=function(x) format(x, big.mark = ".", scientific = FALSE)) +
               geom_text(aes(label=label.pageviews), size=4, vjust = 1.2, color = "darkgreen")

enter image description here

...