我有这个图,我想保存为 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()
这就是我得到的

它看起来很不错,但我想尽可能消除单个饼图之间以及它们与图例之间的空白空间。有什么建议?
最佳答案
与 layout()
,我认为您可能会在更改边距以将饼图挤压在一起时受到一些限制。
这不是一个优雅的解决方案,但它有效。我去了pie()
功能并修改了xlim
论据。这是我唯一的改变。
换句话说,pie
在它的函数中有这个:
xlim <- ylim <- c(-1, 1)
更改
xlim
向左或向右移动饼图。我做了
mypieleft()
和 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]
}
然后稍微更改您的代码:
layout(matrix(c(1,2,3,3), ncol=2, byrow=TRUE), heights=c(4, 1))
par(oma=c(0,0,0,0), xpd=TRUE)
mypieleft(c(1,9),col=c("black","white"))
mypieright(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)
我得到这个图像。

关于r - 从由两个饼图组成的图中消除死区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34601842/