【发布时间】:2013-01-30 10:55:15
【问题描述】:
我创建了巴西的合唱团。将绘图保存为 .png 时,绘图的上部和下部会丢失(覆盖)。这是保存情节的线条。
plot.new()
par(omi=c(0,0,0,0), mgp=c(0,0,0),mar=c(0,0,0,0) , family = "D")
par(mfrow=c(1,1),cex=1,cex.lab = 0.75,cex.main=0.2,cex.axis=0.2)
png(filename = "map_cons_g.png", width = 6,height = 6, units = "in", res = 600)
plot(c(-75,-35),c(0,-30),type="n",axes=FALSE,xlab="",ylab="",asp=1.2)
plot(Brazil,col=cols[Brazil$Cons.g_ri],add=TRUE,border="black",lwd=0.5)
dev.off()
为了保存绘图而不丢失地图的上下部分,我必须更改坐标以在底部和顶部添加空白(即用 c(5, 替换 c(0,-30) -33)):
plot.new()
par(omi=c(0,0,0,0), mgp=c(0,0,0),mar=c(0,0,0,0) , family = "D")
par(mfrow=c(1,1),cex=1,cex.lab = 0.75,cex.main=0.2,cex.axis=0.2)
png(filename = "map_cons_g.png", width = 6,height = 6, units = "in", res = 600)
plot(c(-75,-35),c(5,-33),type="n",axes=FALSE,xlab="",ylab="",asp=1.2)
plot(Brazil,col=cols[Brazil$Cons.g_ri],add=TRUE,border="black",lwd=0.5)
dev.off()
从某种意义上说,我可以看到完整的地图,但地图并没有使用图中的所有可用区域。保存绘图时,图的上下部分似乎有一些边距。其他类型的情节我从来没有遇到过这个问题。
抱歉,我没有足够的“声誉”来发布图片来向您展示地图的外观。
知道如何解决这个问题吗?
编辑:
下面的 cmets 让我对问题进行了更多搜索,最终找到了解决方法。我很抱歉,因为我现在意识到我不了解问题的根源,因此没有尽我所能解释,
似乎 png 会重置绘图的外边距。因此,即使我设置了 omi=c(0,0,0,0),这些值也不是 png 命令在保存绘图时使用的值。解决方法是调用png后设置绘图参数,保存图形。
plot.new()
png(filename = "map_cons_g.png", width = 6,height = 6, units = "in", res = 600)
par(omi=c(0,0,0,0), mgp=c(0,0,0),mar=c(0,0,0,0) , family = "D")
par(mfrow=c(1,1),cex=1,cex.lab = 0.75,cex.main=0.2,cex.axis=0.2)
plot(c(-75,-35),c(5,-33),type="n",axes=FALSE,xlab="",ylab="",asp=1.2)
plot(Brazil,col=cols[Brazil$Cons.g_ri],add=TRUE,border="black",lwd=0.5)
dev.off()
【问题讨论】:
-
无法复制到修补程序,但我认为您正在使用
par()的“omi”和“mar”参数将边距减少到 0。见?par -
或者可以将
xpd = TRUE添加到第二个plot()调用中,以允许它在绘图区域之外绘制?。 -
你应该把你的解决方案作为答案
标签: r dictionary plot png