1

我正在尝试创建一个饼图,就像这里一样,但是图例和实际的饼图是重叠的。

我使用的代码在这里:

library(ggplot2)
library(grid)

par(mai = c(1,1,1,1))

numb <- c(41, 30, 21, 8)
colors <- c("black", "grey70", "grey30","white")

numb_labels <- round(numb/sum(numb) * 100, 1)
numb_labels <- paste(numb_labels, "%", sep="")
xx <- c("the process of familiarizing with the codebase",
        "the patch review process",
        "the impact on the users of the project",
        "high degree visibility of the contributions")

pie(numb, col=colors, labels=numb_labels, clockwise=TRUE)

legend("top", legend = xx, fill=colors, bty="n")

有人能帮我吗?

4

3 回答 3

3

一种解决方案是将参数xpd=TRUE与函数一起使用par(),然后在绘图区域之外设置图例,并使用图例坐标。

par(xpd=TRUE)
pie(numb, col=colors, labels=numb_labels, clockwise=TRUE)
legend(-1.4,1.6, legend = xx, fill=colors, bty="n")
于 2012-12-21T17:45:20.873 回答
3

我不知道你为什么附上ggplot2

您可以使用layout

par(mai = c(0,0,0,0))
layout(c(1,2),heights=c(0.3,1))
plot.new()
legend("bottom", legend = xx, fill=colors, bty="n")
pie(numb, col=colors, labels=numb_labels, clockwise=TRUE)
于 2012-12-21T17:47:35.830 回答
0
par(mai = c(1,1,4,1), xpd=TRUE)
pie(numb, col=colors, labels=numb_labels, clockwise=TRUE)
legend("top", inset=c(0,-0.5),cex=0.9,legend = xx, fill=colors, bty="n")

注意:插图的第一个元素水平移动图例,第二个元素垂直移动。cex 参数可以调整图例的大小。因此可以通过更改这些参数值来调整您的图例。

于 2014-02-21T12:25:29.490 回答