代码之家  ›  专栏  ›  技术社区  ›  olala

ggplot2中的字体大小混乱

  •  5
  • olala  · 技术社区  · 12 年前

    我正在为一份期刊撰写手稿,要求图表的字体大小为10。我在R中使用ggplot2进行了这样的设置:

    p<-qplot(...)+theme_bw()
    ggsave(filename="plot.pdf",plot=p,width=8,height=8,scale=1.3)
    

    图中的x轴和y轴文本看起来很小。。我检查了theme_bw()的R代码,我认为axis文本字体是默认的12倍0.8,因此大致为10。ggplot中的字体大小10真的等于Word或其他上下文中的字体尺寸10吗?

    我读过这篇文章: ggplot2 - The unit of size

    我还对上面文章中使用的字体大小100到底是100还是100/0.35277感到困惑……到底是哪一个?

    最后,当我在Illustrator中与其他图形一起放置在面板中时,生成的轴字体看起来非常小。我有点觉得它不是10号字体,但它是用R中的10号字体规范生成的。不确定我是否应该使用更大的字体来使它看起来更大。

    1 回复  |  直到 12 年前
        1
  •  8
  •   jlhoward    12 年前

    评论太长了。我不确定我是否完全理解你的问题,所以如果这没有帮助,请告诉我,我会删除它。

    首先 width 和 height 在里面 ggsave(...) 是指图像的宽度和高度。默认单位为英寸,但可以通过 units=... 论点因此,在您的代码中,图像将是8“乘8”。如果您在Acrobat Reader中以100%的速度查看,字体大小将是您在中设置的大小 ggplot (见下文)。但是,如果你创建一个8 X 8的图像(非常大),然后将其缩小以包含在论文中,那么一切都会变小。换句话说,如果你论文中的图像是物理上的3 X 5(例如),那么调用 gggsave(...) 应该反映这一点。

    其次,在ggplot中,可以分别设置轴文本(记号标记标签)和轴标题(轴标签)的大小。中的默认值 theme_bw() 是axis.title=12pt和axis.text=0.8*12pt。因此,如果您希望轴标签和记号标记标签都为10pt,则需要指定:

    theme_bw() + 
    theme(axis.text=element_text(size=10),axis.title=element_text(size=10))