2012-03-13 109 views
3

目前我正在使用浮动饼图作为绘图之一的报告。目前我使用plotrix软件包来绘制这个饼图。但是因为我对所有其他地块使用ggplot2,所以饼图看起来不同。所以我试图用ggplot2创建图。目前我有两个问题:使用ggplot创建浮动饼图

  1. ggplot饼图绘制在极坐标系统上。我想在笛卡尔协调系统上绘制多个饼图。目前我不知道该怎么做。

  2. 我希望能够控制笛卡尔坐标系上的饼图半径。

这是我目前使用的代码:

library("plotrix") 
plot(1:5, type="n", xlab="x", ylab="y") 
floating.pie(2, 3, c(1,3,5), radius=0.5) 
floating.pie(4, 2, c(2,4), radius=0.2) 
floating.pie(4.5, 4, c(3,2,5,1), radius=0.3) 

感谢您的时间和帮助。

+1

http://stackoverflow.com/questions/9233077/r-how-to-overlay-pie-charts-on-dots-in-a- scatterplot-in-r;同时,这次谈话http://groups.google.com/group/ggplot2/browse_thread/thread/b1f81cf870202e2c/f1a60b0c16a2f62a?pli=1这表明'geom_pie'(或'由哈德利韦翰建议geom_wedge')不还存在... – 2012-03-13 13:45:01

+0

谢谢,我认为我的要求在此刻不可行。我只是继续使用plotrix软件包。 – jeroen81 2012-03-14 18:02:37

+0

在这篇博客文章中,我找到了一个很好的解决方案:http://ygc.name/2015/08/31/subview/ – jeroen81 2015-09-01 08:35:21

回答

5
  1. 根据定义的饼图使用极坐标。您可以在使用笛卡尔坐标的另一个图形上叠加一些饼图,但它可能会很糟糕。事实上,无论如何,饼图总是很糟糕,所以要小心你想要的东西。

  2. coord_polar页上的例子。

该代码中的重要一点是指定半径映射到“y”美学。

df <- data.frame(
    variable = c("resembles", "does not resemble"), 
    value = c(80, 20) 
) 
ggplot(df, aes(x = "", y = value, fill = variable)) + 
    geom_bar(width = 1, stat = "identity") + 
    scale_fill_manual(values = c("red", "yellow")) + 
    coord_polar("y", start = 2 * pi/3) + #<- read this line! 
    ggtitle("Pac man") 
+0

我同意,饼图大多很糟糕。但只有两个馅饼部分,我认为这很好。 – jeroen81 2012-03-14 18:08:13

2

我有同样的问题,还有一个基于ggfore解决问题称为scatterpie包。

它是在CRAN,你可以看到的例子here