Polar Bar Plot,最内圈为空使用R.

时间:2016-07-29 12:41:04

标签: r plot ggplot2 bar-chart

我想要一个如下所示的圆形条形图:

enter image description here 但是现在,我只有: enter image description here

为了做到这一点,我在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))

1 个答案:

答案 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))

enter image description here

当我切换到极坐标时,条形图下端的间隙转换为极坐标图中心的间隙:

p + coord_polar()

enter image description here

您可以通过在limits中使用scale_y_continuous()使用的值来修改中心间隙的大小。