r - 修改ggplot2中圆环图百分比标签的位置和格式

标签 r ggplot2 donut-chart

我用下面的代码绘制了一个 donut chart :

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)
出去:
enter image description here
如您所见,标签的位置不正确,我希望它显示 % 的格式而不是带数字的浮点数。
我怎样才能修改代码来实现这一点?谢谢。

最佳答案

您只需要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))
enter image description here

关于r - 修改ggplot2中圆环图百分比标签的位置和格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62807306/

相关文章:

r - 如何检测函数的输出是否分配给R中的对象

r - ggplot2:添加描述散点图两个维度的条件密度曲线

r - 合并多列中具有相同值的行

javascript - Raphael.js - 如何在 donut 扇区中使用弯曲标签制作饼图 donut 样式

javascript - 更改字体系列 Morris Donut Chart

javascript - 静态文件夹中的 vue.js javascript 文件

r - 是否有 R 函数仅从具有许多 NA 值的逗号分隔字符串中提取数字以创建仅包含数字的列?

r - %Rpush >> 复杂对象列表(例如 IPython Notebook 中的 pandas DataFrames)

r - 固定 alpha 比例 ggplot2

r - 后续: Plotting ordiellipse function from vegan package onto NMDS plot created in ggplot2