修改R中绘图的纵横比

时间:2015-04-16 00:43:08

标签: r graphics plot

这是我的第一个情节

par(bg="white")
image(m, main = paste("generation: ",generation), ylab="", col=heat.colors(100), xaxt="n", yaxt="n", xlab="")

enter image description here

这是一个正方形,我希望它是一个矩形。所以我做了

par(bg="white", mar=c(16,1,16,1))
        image(m, main = paste("generation: ",generation), ylab="", col=heat.colors(100), xaxt="n", yaxt="n", xlab="")

enter image description here

然后标题(main)离剧情很远。所以我做了

par(bg="white", mar=c(16,1,16,1))
        image(m, ylab="", col=heat.colors(100), xaxt="n", yaxt="n", xlab="")
        legend(0.32, 3.5, paste("Generation: ", IntFormat(generation, 4)), border="white", xpd=TRUE, box.col="white", cex=1.5)

enter image description here

嗯..我不会说这很精彩,但我很满意。所以,让我们把它放到一个.png

png(paste0(folder.images, "pg_",IntFormat(generation,4),".png"))
        par(bg="white", mar=c(16,1,16,1))
        image(m, ylab="", col=heat.colors(100), xaxt="n", yaxt="n", xlab="")
        legend(0.32, 3.5, paste("Generation: ", IntFormat(generation, 4)), border="white", xpd=TRUE, box.col="white", cex=1.5)
        dev.off()

这就是.png的样子!

enter image description here


  1. 有没有比使用参数mar从我的方格中制作矩形更好的解决方案,迫使我使用legend添加标题并通过反复试验进行搜索图片的中心是标题。

  2. 为什么.png与R窗口中显示的不同?

1 个答案:

答案 0 :(得分:2)

我可以做到这一点:

png("test.png", res = 150, width = 8, height = 1, units = "in")
par(mar = c(1,1,1,1))
image(matrix(1:10, ncol=1), ylab="", col=heat.colors(100), xaxt="n", 
      yaxt="n", xlab="", main="Generation: 0001")
dev.off()

enter image description here