如何使用饼图使用facet_wrap?

时间:2014-08-18 21:08:34

标签: r

Seasons Frequency1  Frequency2
DJF      497        500
JJA      999        700
MAM      695        2000
SON      245        1000

嗨,我正在使用这个数据框制作多个饼图(一个使用Frequency1,另一个使用Frequency2)。我知道如何使用melt和facet_wrap(~id)。但在这里我必须汇集数据(不知道如何表达它)。我不想要四季的Facet_wrap。

如何以一种我可以并排制作两个饼图的方式融合数据。我只使用了Frequency1。

enter image description here

谢谢!

2 个答案:

答案 0 :(得分:2)

这是使用ggplot2生成带分面的饼图的方法。

数据:

dat <- read.table(text = "Seasons Frequency1  Frequency2
DJF      497        500
JJA      999        700
MAM      695        2000
SON      245        1000", header = TRUE)

将数据转换为长格式:

library(reshape2) 
dat2 <- melt(dat)

创建情节:

library(ggplot2)
ggplot(dat2, aes(x = "", y = value, fill = Seasons)) + 
  geom_bar(stat = "identity", width = 1, position = position_fill()) +
  coord_polar(theta = "y") + 
  facet_wrap( ~ variable)

enter image description here

答案 1 :(得分:0)

如果你真的想融化并使用方面,那么:

library(reshape2)
molten_df <- melt(your_df, id.var='Seasons')

现在,molten_df将有一个名为&#39;变量&#39;的列。你可以用于方面:

+facet_grid(facets=.~variable)

但是,如果你只想并排两张图表,你也可以安排它们。我发现gridExtra包对此非常方便:

library(gridExtra) # will also load the grid package. install these if needed.

# however you are creating your charts
plot1 <- ... #your code here
plot2 <- ... #your code here

# side by side
grid.arrange (plot1, plot2, ncol=2)