我想要一个如下所示的圆形条形图:
为了做到这一点,我在R中使用了以下代码:
require(ggplot2)
ggplot(PolarPlot,aes(x,y,
fill=x))+
geom_bar(width=1,stat="identity")+
coord_polar() + xlab("")+ylab("")+
theme(legend.position = "none" , axis.text.y = element_blank() ,
axis.ticks = element_blank()
有人可以告诉我需要做些什么修改来获得我想要的图表吗?
数据如下:
PolarPlot <- structure(list(x = structure(1:7, .Label = c("Class1", "Class2",
"Class3", "Class4", "Class5", "Class6", "Class7"), class = "factor"),
y = c(2L, 8L, 17L, 56L, 28L, 7L, 2L)), .Names = c("x", "y"),
class = "data.frame", row.names = c(NA, -7L))
答案 0 :(得分:4)
首先创建条形图,然后将其转换为极坐标(这很好),从而生成绘图。如果您希望条形图不在极坐标图的中心开始,那么您需要确保它们不会从条形图的底部开始。
我的意思是通过实际展示最简单的解释。首先,我以与您相同的方式创建条形图,但我延伸y轴以达到负值:
p <- ggplot(PolarPlot, aes(x, y, fill=x)) +
geom_bar(width=1,stat="identity") +
xlab("") + ylab("") +
theme(legend.position = "none" , axis.text.y = element_blank() ,
axis.ticks = element_blank()) +
scale_y_continuous(limits = c(-50, 60))
当我切换到极坐标时,条形图下端的间隙转换为极坐标图中心的间隙:
p + coord_polar()
您可以通过在limits
中使用scale_y_continuous()
使用的值来修改中心间隙的大小。