我希望能够使用ggplot2在R中制作“饼图”,但要计算出现某些数据的次数。
在我的示例中,我有一个Excel,可以从中提取列并在列中显示值,例如,名为“ discipline”的列具有值:
discipline1, discipline2, discipline3, discipline1, discipline1, discipline2, discipline2, discipline2, discipline2, discipline2, discipline3, discipline3.
所以我要绘制的是每个值出现的百分比:
discipline1, discipline2, discipline3
使用饼图。
对于条形图,我使用了stat="count"
值,但我在饼图中看到了我不能使用的值。
这是否回答了您的问题?
library(tidyverse)
# sample data
df <- tibble(discipline = paste0("discipline", sample(1:3, 20, replace = T))) %>%
count(discipline)
# creating a pie chart
ggplot(df, aes(x="", y= n , fill=discipline))+
geom_bar(width = 1, stat = "identity") + coord_polar("y", start=0)
您可以简单地将coord_polar(theta='y')
添加到geom_bar
的末尾:
library(ggplot2)
ggplot(data=as.data.frame(discipline),
aes(x = factor(1),fill = factor(discipline))) +
geom_bar(stat = "count") +
scale_y_continuous(breaks = seq(0,12,3), labels = c("0", "25%", "50%", "75%", "100%")) +
coord_polar(theta='y') +
theme(axis.text.y = element_blank(),
axis.title.y = element_blank(),
axis.ticks.y = element_blank(),
axis.title.x = element_blank()) +
labs(fill = "Discipline")
数据:] >>
discipline <- c("discipline1", "discipline2", "discipline3", "discipline1",
"discipline1", "discipline2", "discipline2", "discipline2",
"discipline2", "discipline2", "discipline3", "discipline3")