从包含两个饼图的图中消除死区

时间:2016-01-04 23:38:49

标签: r plot pie-chart

我有这个情节,我想保存为PDF。

pdf(file="pie_charts.pdf", width=8, height=5, onefile=F)
layout(matrix(c(1,2,3,3), ncol=2, byrow=TRUE), heights=c(4, 1))
par(mar=c(0,0,0,0), xpd=TRUE)
pie(c(1,9),col=c("black","white"))
pie(c(1,3),col=c("black","white"))
plot.new()
legend(x="center", ncol=2,legend=c("Black","Whtie"),fill=c("black","white"), bty = "n",cex=1.3)
dev.off()

这就是我得到的

enter image description here

它看起来很不错,但我想在各个饼图之间以及它们和图例之间消除尽可能多的空白空间。有什么建议吗?

2 个答案:

答案 0 :(得分:3)

使用%20,我认为您可能会因为更改边距以挤压饼图而受到限制。

这不是一个优雅的解决方案,但它的工作原理。我进入layout()函数并修改了pie()个参数。这是我唯一的改变。

换句话说,xlim在其功能中有这个:

pie

更改xlim <- ylim <- c(-1, 1) 以向左或向右移动饼图。

我制作了xlimmypieleft()

mypieright()

mypieleft<-function(blah blah){
[untouched code from pie]
    #  xlim <- ylim <- c(-1, 1)
    xlim <- c(-1.20, 0.80)
    ylim <- c(-1, 1)
[untouched code from pie]
}

然后稍微更改您的代码:

mypieright<-function(blah blah){
[untouched code from pie]
    #  xlim <- ylim <- c(-1, 1)
    xlim <- c(-0.75, 1.25)
    ylim <- c(-1, 1)
[untouched code from pie]
}

我得到了这张照片。

enter image description here

答案 1 :(得分:2)

只需增加馅饼的radius

layout(matrix(c(1, 2, 3, 3), ncol=2, byrow=TRUE), heights=c(4, 1))
par(mar=c(0, 1, 0, 0)) # increase left margin to accommodate text
pie(c(1, 9), col=c("black","white"), radius=1)
par(mar=c(0, 0, 0, 1)) # increase right margin to accommodate text
pie(c(1, 3), col=c("black", "white"), radius=1)
plot.new()
legend(x="center", ncol=2, legend=c("Black", "White"), 
       fill=c("black", "white"), bty="n", cex=1.3)

enter image description here

请参阅radius的{​​{1}} arg。