【发布时间】:2020-12-18 23:58:14
【问题描述】:
我有一个如下所示的数据框
+--------+-----------+-----+
| make | model | cnt |
+--------+-----------+-----+
| toyota | camry | 10 |
| toyota | corolla | 4 |
| honda | city | 8 |
| honda | accord | 13 |
| jeep | compass | 3 |
| jeep | wrangler | 5 |
| jeep | renegade | 1 |
| accura | x1 | 2 |
| accura | x3 | 1 |
+--------+-----------+-----+
我需要为每个品牌创建一个百分比份额(确实如此)。
我现在做以下事情。
library(ggplot2)
library(dplyr)
df <- data.frame(Make=c('toyota','toyota','honda','honda','jeep','jeep','jeep','accura','accura'),
Model=c('camry','corolla','city','accord','compass', 'wrangler','renegade','x1', 'x3'),
Cnt=c(10, 4, 8, 13, 3, 5, 1, 2, 1))
dfc <- df %>%
group_by(Make) %>%
summarise(volume = sum(Cnt)) %>%
mutate(share=volume/sum(volume)*100.0) %>%
arrange(desc(volume))
bp <- ggplot(dfc[c(1:10),], aes(x="", y= share, fill=Make)) +
geom_bar(width = 1, stat = "identity")
pie <- bp + coord_polar("y")
pie
这给了我以下非常整洁的饼图。
但是我需要通过以下方式来增强它 - 如下图所示。
- 添加百分比标签
- 按
share的降序排列馅饼 - 删除 0/100、25 等标签
- 添加标题
【问题讨论】:
-
to 2. 根据您喜欢的顺序设置
factor(share)的levels。 4.重复的问题。 -
3.与
geom_text合作,在您想要的地方获得您想要的东西。谷歌“piechart r” -> images -> 点击你喜欢的饼图图片。可能有您可以使用的代码。