如何将ggplot2文本大小转换为R自己的绘图?

3

这可能看起来是一个简单的问题,但我在查看的网站上找不到任何信息。

ggplot2 中,我使用文本大小为 7。由于某种原因,我需要使用 R 的本地图形,但我不知道如何缩放文本大小以匹配 ggplot2

我的轴线文本大小为:

theme(axis.title = element_text(face="bold", size = 7)

plot() 中,我应该放置什么值的 cex.axis


如果您提供一个简单的可重现示例,其中包含样本输入和期望输出,那么我们更容易帮助您测试和验证可能的解决方案。您是如何保存/组合图形以进行比较的? - MrFlick
2个回答

2

我们可以使用(theme_bw()$text$size)获取默认的ggplot -> 11

字体大小7比默认值小64% -> 7/11(在我的第一个答案中,我使用了12)。

为了将字体大小缩放以匹配您的ggplot2字体大小为7,我们可以使用缩放因子0.64

dev.off()
barplot(data$mpg, names.arg = data$cyl,
        col = "grey", border = "black",
        main = "Title", xlab = "X Axis", ylab = "Y Axis", 
        cex.names = 0.64,
        cex.lab = 0.64,
        cex.main = 0.64,
        yaxt="n",
        xaxt="n")
axis(2, cex.axis = 0.64)
axis(1, cex.axis = 0.64)

enter image description here


有趣,你是怎么想到用0.58来匹配ggplot文字大小7的?而且在条形图之前应该调用par吗? - zx8754
请看我的更新。现在应该清楚了。默认值不是12,而是11。但我认为这取决于我们选择的主题。 - TarJae

1

我认为在指定基础图的参数时会涉及到这个,例如在绘制图形之前指定“par(ps = 7)”,其中 ps 是“整数;文本的点大小(但不包括符号)”。

或者,当您使用类似“png()”的东西保存图形时,有一个指定点大小的选项。因此,当我尝试以下操作并将图形缩放到相同大小时,轴字体看起来相似。您可以调整边距等以避免缩放。

foobar <- data.frame(x=rnorm(100), y=rnorm(100))

p_gg <- ggplot() + theme_light() + 
  geom_point(data=foobar, aes(x=x, y=y)) +
  theme(axis.title = element_text(face="bold", size = 7))
ggsave(p_gg, file="p_gg.png", width = 4, height = 4, units ="in", dpi = 600)

png(filename = "p_df.png",
    width = 4, height = 4, units = "in", pointsize = 7,
    bg = "white", res = 600, restoreConsole = TRUE)
par(new=TRUE, ps=7)
plot(foobar$x, foobar$y)
dev.off()

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接