簡體   English   中英

使用 par 設置 png 繪圖設備的繪圖邊距

[英]Set plot margin of png plot device using par

我已經創建了巴西的 choropleth。 將繪圖保存為 .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,-33) 替換 c(0,-30) ):

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()

這在某種意義上是有效的,我可以看到完整的地圖,但地圖並沒有使用圖中的所有可用區域。 保存繪圖時,圖形的上部和下部似乎有一些邊距。 我從來沒有遇到過其他類型的情節的問題。

抱歉,我沒有足夠的“聲譽”來發布圖片來向您展示地圖的外觀。

知道如何解決這個問題嗎?

編輯:

下面的評論讓我對問題進行了更多的搜索,我終於找到了解決方法。 我很抱歉,因為我現在意識到我不了解問題的根源,因此沒有盡我所能解釋,

似乎 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詳細信息

每個設備都有自己的一組圖形參數。

因此,即使我已將繪圖的外邊距設置為par ( omi = c(0,0,0,0) ),但在保存繪圖時,這些值會被png的參數覆蓋。

解決方案是調用pngpar設置邊距參數

plot.new()

# first open png device...
png(filename = "map_cons_g.png", width = 6,height = 6, units = "in", res = 600)

# ...then set par
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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM