R带有百分比的饼图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R带有百分比的饼图相关的知识,希望对你有一定的参考价值。

我有这个df

species<-c("Platanus acerifolia Willd.","Platanus acerifolia Willd.","Platanus occidentalis L.",
           "Morus alba L.","Platanus occidentalis L.","Celtis australis L.")
kategorija<-c(3,2,1,2,3,3)

df<-data.frame(species,kategorija)

而且我需要根据用百分比标记的类别的频率制作饼图。

答案

您可以尝试

pie(table(df$kategorija), labels = paste(round(prop.table(table(df$kategorija))*100), "%", sep = ""), col=rainbow(nrow(df)))
legend('topright', legend = paste('category', table(df$kategorija)), fill=rainbow(nrow(df)))

enter image description here

另一答案

您还可以使用dplyrggplot绘制饼图。它需要更多的编码,但是结果可能会更令人满意。

library(ggplot2)
library(dplyr)

#Use dplyr to get percentages per kategorija
df_plot<-df %>% 
  count(kategorija) %>% 
  mutate(percent = round((100 * n / sum(n)),2))

#Create the bar plot
p1<- ggplot(df_plot, aes(x = "", y = percent, fill = factor(kategorija)))+
  geom_bar(width = 1, stat = "identity")
#Transform the bar plot to pie plot
p2 <- p1 + coord_polar("y", start = 0)
#Add labels to each part of the pie and add some theme adjustments
p2 <- p2 + geom_text(aes(y = cumsum(rev(percent)) - rev(percent)/2, 
                       label = paste(rev(percent),"%")), size=4) +
  labs(fill = "Kategorija")+
  theme_minimal() +
  theme(axis.title.x = element_blank(),
        axis.title.y = element_blank(),
        axis.text = element_blank(),
        panel.border = element_blank(),
        panel.grid=element_blank(),
        axis.ticks = element_blank())

此代码创建了以下图:Pie plot

以上是关于R带有百分比的饼图的主要内容,如果未能解决你的问题,请参考以下文章

在Data Studio - 创建从多个列的饼图

echarts的饼图,可以在饼图的每个扇形上面显示文字和数据吗

Qt+ECharts开发笔记:ECharts的饼图介绍基础使用和Qt封装百分比图Demo

在ggplot中绘制地图上的饼图

Qt+ECharts开发笔记:ECharts的饼图介绍基础使用和Qt封装百分比图Demo

Qt+ECharts开发笔记:ECharts的饼图介绍基础使用和Qt封装百分比图Demo