2017-10-04 85 views
0

我在饼图中绘制了R中的data.frame。下面是代码在R中绘制Pie3D图形

library(plotrix) 
piepercent<- round(100*cause_wise$suicides/sum(cause_wise$suicides), 1) 
png(file = "plots/cause suicide.png") 
pie3D(cause_wise$suicides,labels = piepercent,explode = 0.1, 
    main = "Suicide by Gender(in percentages)") 
#legend("topright", cause, cex = 0.8, fill = rainbow(length(cause))) 
dev.off() 

,我想在这里绘制有38个值data.frame,我要离开了这些价值不显著的piepercent成一个大面积的贡献表示低于2% 。有什么办法可以做到这一点?

这里是图的样子:

Pie-Chart

+3

是的,你可以聚集类别使用最低门槛。可能已经有与此相关的答案。但更重要的是,你确定这是你想要的那种图表?由于对数据的视觉解释不理想,3D派(普遍派)普遍不受欢迎。条形图会更好吗? – dww

+0

谢谢你让我知道最佳实践!我的结果将使用条形图! – Rawshn

回答

1

总结小于阈值少的人归为一类,然后剧情:

library(plotrix) 
library(dplyr) 

# dummy data 
cause_wise <- data.frame(suicides = c(2, 3, 1, 50, 1, 50, 45)) 

# sum values where percentage is less than 2% 
plotDat <- cause_wise %>% 
    mutate(grp = ifelse(suicides/sum(suicides) < 0.02, "tooSmall", row_number())) %>% 
    group_by(grp) %>% 
    summarise(suicides = sum(suicides)) %>% 
    select(-grp) %>% 
    ungroup() 

# set label and color(grey for <2%) 
piepercent <- round(100 * plotDat$suicides/sum(plotDat$suicides), 1) 
piecol <- c(rainbow(length(piepercent) - 1), "grey") 

# why oh why 3D pie chart... 
pie3D(plotDat$suicides, 
     labels = piepercent, 
     explode = 0.1, 
     col = piecol, 
     main = "Suicide by Gender (in percentages)") 

enter image description here