我正在尝试为手稿制作数字,应该用MS Word编写,不接受pdf格式的数字。该期刊要求初稿中包含Word文件中嵌入的数字。这些数字的分辨率最低为300 dpi,宽度为169 mm或81 mm(两列/一列)。我注意到当我将图片的分辨率指定为300(res = 300)时,字体大小将绑定到此值。这适用于一些数字(第一个例子,example.png),更糟糕的是其他人(example2.png)。如何控制字体大小以使图形的尺寸和分辨率保持固定?
library(ggplot2)
library(grid)
data(iris)
vplayout <- function(x, y) viewport(layout.pos.row = x, layout.pos.col = y)
p <- ggplot(iris, aes(Species, Petal.Length))
q <- ggplot(iris, aes(Species, Petal.Width))
len <- p + geom_boxplot()
wid <- q + geom_boxplot()
png("example.png", width = 169, height = 100, units = "mm", res = 300)
grid.newpage()
pushViewport(viewport(layout = grid.layout(1, 2)))
print(len, vp = vplayout(1, 1))
print(wid, vp = vplayout(1, 2))
dev.off()
png("example2.png", width = 81, height = 100, units = "mm", res = 300)
grid.newpage()
pushViewport(viewport(layout = grid.layout(1, 2)))
print(len, vp = vplayout(1, 1))
print(wid, vp = vplayout(1, 2))
dev.off()
换句话说,我想减少example2.png中的字体大小,但保持两个图的布局和尺寸不变。
Example.png
Example2.png
答案 0 :(得分:5)
使用base_size
函数的theme_XXX()
参数,可以更改所有文本的整体字体大小。
png("example2.png", width = 81, height = 100, units = "mm", res = 300)
grid.newpage()
pushViewport(viewport(layout = grid.layout(1, 2)))
print(len + theme_gray(base_size=12*(81/169)), vp = vplayout(1, 1))
print(wid + theme_gray(base_size=12*(81/169)), vp = vplayout(1, 2))
dev.off()
答案 1 :(得分:2)
只需更改png的data-config.xml
属性即可。例如:
pointsize
答案 2 :(得分:1)
据我所知,无论分辨率和设备大小如何,fontsize都是一样的。您可以在以下示例中进行检查:
library(grid)
png("example1.png", width = 30, height = 5, units = "mm", res = 200)
g <- grid.text("testing font size", gp=gpar(fontsize=12))
width <- convertUnit(grobWidth(g), "mm")
height <- convertUnit(grobHeight(g), "mm", "y")
grid.rect(width=width, height=height, gp=gpar(lty=2, fill=NA))
dev.off()
png("example2.png", width = 60, height = 5, units = "mm", res = 500)
grid.text("testing font size", gp=gpar(fontsize=12))
grid.rect(width=width, height=height, gp=gpar(lty=2, fill=NA))
dev.off()
但似乎你真的想改变字体大小。