Форматирование чисел в метках в ggplot2? - PullRequest
0 голосов
/ 31 марта 2020

Я попытался отформатировать метки, которые появляются над каждым столбцом. Я хочу, чтобы у них был разделитель тысяч. Это может быть запятая или точка.

Это код, который я пробовал.

df%>%
  group_by(Hour)%>%
  summarize(TotalValue= round(sum(Value)/1000000))%>%
  ggplot(aes(x = Hour, y = TotalValue, fill = "coral4"))+
  scale_x_continuous(breaks = seq(7,22,1))+
  scale_y_continuous(labels = comma)+
  geom_col()+
  theme_bw()+
  theme(legend.position = "none")+
  geom_label_repel(aes(label = TotalValue),
                   box.padding   = 0.35,
                   point.padding = 0.5,
                   segment.color = 'grey50')

Это график, сгенерированный предыдущим кодом

Я хочу, например, в третьем столбце (valor = 37692) число должен иметь этот формат 36,792

1 Ответ

1 голос
/ 31 марта 2020

Вы можете использовать функцию format(). Пример:

labels <- c(43252, 54326, 54325)
format(labels, big.mark = ',', scientific = FALSE)
#> [1] "43,252" "54,326" "54,325"

В вашем примере это будет:

df%>%
  group_by(Hour)%>%
  summarize(TotalValue= round(sum(Value)/1000000))%>%
  ggplot(aes(x = Hour, y = TotalValue, fill = "coral4"))+
  scale_x_continuous(breaks = seq(7,22,1))+
  scale_y_continuous(labels = comma)+
  geom_col()+
  theme_bw()+
  theme(legend.position = "none")+
  geom_label_repel(aes(label = format(TotalValue, 
                                      big.mark = ',',
                                      scientific = FALSE)),
                   box.padding   = 0.35,
                   point.padding = 0.5,
                   segment.color = 'grey50')

Вы можете использовать ?format, чтобы узнать больше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...