【问题标题】:Display percentage values on a pie chart [duplicate]在饼图上显示百分比值[重复]
【发布时间】:2016-02-28 12:46:13
【问题描述】:

我正在尝试使用 ggplot2 绘制饼图。我的代码如下所示。

df <- data.frame(
  variable = c("australia","hungary","germany","france","canada"),
  value = c(632,20,491,991,20)
)
ggplot(df, aes(x = "", y = value, fill = variable)) +
  geom_bar(width = 1, stat = "identity") +
  scale_fill_manual(values = c("red", "yellow","blue", "green", "cyan")) +
  coord_polar(theta = "y") +
  labs(title = "pie chart")

我想显示百分比值。我怎样才能做到这一点?

【问题讨论】:

  • 你尝试了什么?为什么它不起作用? (可能有人已经告诉过你,但如果还没有发生,饼图并不是显示数据的最佳方式。你可以考虑使用条形图)
  • 今天早些时候,我指的是first link from above。请仔细研究first answer。它详细说明了如何执行此操作。
  • @Heroka 我的努力已经在问题中显示为代码。我的代码工作正常。但我需要在图上显示百分比。不读问题就写评论是不好的。
  • 我读了你的问题。如何添加百分比是零努力。

标签: r ggplot2 pie-chart


【解决方案1】:

试试

df <- data.frame(
  variable = c("australia","hungary","germany","france","canada"),
  value = c(632,20,491,991,20)
)
library(ggplot2)
ggplot(transform(transform(df, value=value/sum(value)), labPos=cumsum(value)-value/2), 
       aes(x="", y = value, fill = variable)) +
  geom_bar(width = 1, stat = "identity") +
  scale_fill_manual(values = c("red", "yellow","blue", "green", "cyan")) +
  coord_polar(theta = "y") +
  labs(title = "pie chart") + 
  geom_text(aes(y=labPos, label=scales::percent(value)))

【讨论】:

  • 感谢您的回答。是否可以删除 x 和 y 轴标签?我还需要增加百分比值的字体大小。
  • @bhl 在 cmets 中提出其他问题之前,请先搜索答案。 所有您的问题已在 SO 上多次回答。
  • @bhl #1 您可以添加 + theme(axis.title = element_blank()) 或 + labs(x="", y="") 或 + xlab("")。 #2 增加尺寸,例如使用+ geom_text(aes(y=labPos, label=scales::percent(value)), size=12)。
  • @lukeA 非常感谢您的真诚帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-17
  • 1970-01-01
  • 1970-01-01
  • 2022-12-14
  • 2016-07-24
相关资源
最近更新 更多