尝试使用ggplot2填充饼图中的大差距

时间:2015-09-03 17:44:20

标签: r graphics ggplot2 pie-chart

尝试使用ggplot2创建饼图,但似乎无法在线使用其他参考。我创建的图表缺少大部分内容。

ggplot(sae,aes(x=1,fill=factor(State), width=1))+        
geom_bar()+
ggtitle("House by State")+
coord_polar(theta='y')

此代码给出:

enter image description here

我如何填补中心?

赞赏任何其他改进。

3 个答案:

答案 0 :(得分:5)

使用样本数据

sae <- data.frame(State=sample(LETTERS[1:6],60,T))


ggplot(sae,aes(x=factor(1),fill=factor(State)))+        
  geom_bar(width=1)+
  ggtitle("House by State")+
  coord_polar(theta="y")

enter image description here

编辑:其他选项(因为饼形图很糟糕)

#following Jaaps example: some better way to visualize this
#grouped barchart

p1 <- ggplot(sae, aes(x=State, fill=State)) +
  geom_bar() + labs(title="grouped barchart")


#stacked barchart; especially practical if you want to compare groups
sae$group <- rbinom(60,1,0.5)
p2 <- ggplot(sae, aes(x=factor(group),fill=State))+
  geom_bar(width=0.5) + labs(title="grouped stacked barchart")

do.call(grid.arrange,list(grobs=list(p1,p2),ncol=2))

enter image description here

答案 1 :(得分:2)

正如@Heroka在评论中已经提到的,饼图是一种可视化信息的坏方法。它们很糟糕,甚至在R的帮助文件中也提到过。

来自?pie

  

饼图是显示信息的一种非常糟糕的方式。眼睛是   擅长判断线性测量,判断相关区域不好。一个   条形图或点图是显示此类型的首选方式   数据

     

Cleveland(1985),第264页:“可以通过饼图显示的数据   总是可以用点图表示。这意味着判断   可以制作沿着共同比例的位置而不是不太准确的位置   角度判断。“这个陈述是基于经验的   克利夫兰和麦吉尔的调查以及调查   知觉心理学家。

Some further reading on the pie-chart debate

使用@Heroka的示例数据:

ggplot(sae,aes(x = factor(1), fill = factor(State)))+        
  geom_bar(width = 1, position = "dodge")+
  ggtitle("House by State")

你得到:

enter image description here

清楚地表明,当您使用条形图而不是饼图时,可以更好地查看类别之间的差异。

答案 2 :(得分:2)

如果您想显示有关比例的信息,还有另一种选择,华夫饼包可以更多地回复您可能要用饼图显示的内容(即比例)。在大多数情况下,上面的条形图可能是最好的,但为了显示另一种绘图方式......

使用上面的sae数据:

library(waffle)  # install the package if you don't have it
w <- table(sae)
w.waf <- waffle(table(sae))
w.waf + ggtitle("Contextless Waffle Graph") + theme(plot.title=element_text(face="bold", size=24))

产生这个:

enter image description here