Измените положение и формат процентных меток кольцевой диаграммы в ggplot2 - PullRequest
0 голосов
/ 09 июля 2020

Я построил кольцевую диаграмму с кодом ниже:

library(tidyverse)
library(ggthemes)

df <- data.frame(flavor = c("Chocolate", "Strawberry", "Pistachio"),
                        per_sold = c(.20, .30, .50))
df %>%
  ggplot(aes(x = 2, y = per_sold, fill = flavor)) +
  geom_bar(stat = "identity") +
  xlim(0.5, 2.5) +
  coord_polar(start = 0, theta = "y") +
  xlab("") +
  ylab("") +
  theme(axis.ticks = element_blank(),
        axis.text = element_blank(),
        axis.title = element_blank(),
        panel.grid = element_blank(),
        panel.border = element_blank(),
        legend.title = element_text(size = rel(2)),
        legend.text=element_text(size=rel(1.5))) +
  geom_text(aes(label = per_sold), size = 6)

Out:

введите описание изображения здесь

Как видите, расположение меток неверно, также я хочу, чтобы он отображал формат % вместо числа с плавающей запятой с di git.

Как могу ли я изменить код, чтобы добиться этого? Спасибо.

1 Ответ

1 голос
/ 09 июля 2020

Все, что вам нужно, это position_stack(vjust = 0.5) и scales::percent:

library(scales)
df %>%
  ggplot(aes(x = 2, y = per_sold, fill = flavor)) +
  geom_bar(stat = "identity") +
  xlim(0.5, 2.5) +
  coord_polar(start = 0, theta = "y") +
  xlab("") +
  ylab("") +
  theme(axis.ticks = element_blank(),
        axis.text = element_blank(),
        axis.title = element_blank(),
        panel.grid = element_blank(),
        panel.border = element_blank(),
        legend.title = element_text(size = rel(2)),
        legend.text=element_text(size=rel(1.5))) +
  geom_text(aes(label = scales::percent(per_sold)),
            size = 6, position = position_stack(vjust = 0.5))

введите описание изображения здесь

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