尝试使用ggplot2创建饼图,但似乎无法在线使用其他参考。我创建的图表缺少大部分内容。
ggplot(sae,aes(x=1,fill=factor(State), width=1))+
geom_bar()+
ggtitle("House by State")+
coord_polar(theta='y')
此代码给出:
我如何填补中心?
赞赏任何其他改进。
答案 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")
#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))
答案 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")
你得到:
清楚地表明,当您使用条形图而不是饼图时,可以更好地查看类别之间的差异。
答案 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))
产生这个: