R图:大小和分辨率
我已经堆积到这个问题:我需要用DPI = 1200和具体的打印尺寸来绘制图像。
默认情况下,PNG看起来不错…
png("test.png",width=3.25,height=3.25,units="in",res=1200) par(mar=c(5,5,2,2),xaxs = "i",yaxs = "i",cex.axis=1.3,cex.lab=1.4) plot(perf,avg="vertical",spread.estimate="stddev",col="black",lty=3, lwd=3) dev.off()
但是当我应用这个代码时,图像变得非常糟糕,它不能缩放(适合)所需的大小。 我错过了什么? 如何“适合”形象的情节?
,
一个可重现的例子:
the_plot <- function() { x <- seq(0, 1, length.out = 100) y <- pbeta(x, 1, 10) plot( x, y, xlab = "False Positive Rate", ylab = "Average true positive rate", type = "l" ) }
詹姆斯的使用cex
的build议,结合各种cex
参数,可以产生合理的结果。
png( "test.png", width = 3.25, height = 3.25, units = "in", res = 1200, pointsize = 4 ) par( mar = c(5, 5, 2, 2), xaxs = "i", yaxs = "i", cex.axis = 2, cex.lab = 2 ) the_plot() dev.off()
当然,更好的解决scheme是放弃基础graphics的这个摆弄,并使用一个系统来处理你的分辨率缩放。 例如,
library(ggplot2) ggplot_alternative <- function() { the_data <- data.frame( x <- seq(0, 1, length.out = 100), y = pbeta(x, 1, 10) ) ggplot(the_data, aes(x, y)) + geom_line() + xlab("False Positive Rate") + ylab("Average true positive rate") + coord_cartesian(0:1, 0:1) } ggsave( "ggtest.png", ggplot_alternative(), width = 3.25, height = 3.25, dpi = 1200 )
如果你想使用基本的graphics,你可以看看这个 。 摘录:
你可以用res =参数来纠正这个问题,以指定每英寸的像素数。 这个数字越小,以英寸为单位的绘图区域就越大,而相对于graphics本身的文字越小。