如何在绘图中指定字体大小(用于PDF输出)?

8

有关如何将cex校准到字体大小单位的任何想法?

具体而言,我想使用默认字体“Helvetica”并指定字体大小以对应于.doc字体大小。例如,使用字体大小12用于主标题,使用字体大小10用于轴标题。

我很感激您的建议和建议。谢谢!

3个回答

3

您可以按照每个绘图的要求设置默认字体。

par(family = 'Helvetica')
plot(rnorm(10), main = 'Something In Helvetica')

还有一个par('font')可以用来设置字体是否加粗,斜体等。除了Brandon提到的允许将字体大小设置为相对术语的cex参数组之外,还有cin、cra,我相信还有更多可以以英寸或像素为单位设置大小的参数。不幸的是,您不能指定标准的字体大小为10或12。

查看par()的帮助,并仔细阅读。


您,先生,是个天才。 - Omar Wagih

2
您的第一个问题需要进行一些较大的努力。这里有一组很好的说明:http://www.jameskeirstead.ca/typography/changing-the-fonts-in-r-plots/ 我不知道是否有“更简单的方法”。但我很想看到它。
对于您的第二个问题:请参见?par,特别是关于cex的部分。
cex
cex.axis
cex.lab
cex.main

此外,您可以在 ?pdf 中调整 pointsize 设置以调整相对大小。


不幸的是,该链接末尾的位元表示它不适用于PDF设备。 - IRTFM

0

或许尝试在你的quartz()中使用pointsize = 12https://stat.ethz.ch/R-manual/R-devel/library/grDevices/html/quartz.html

quartz(pointsize = 12)

由于某些原因,当在quartz()中使用时,我的family="Helvetica"无法生效。

这两个更改 - 更改字体字号按照以下顺序生效:

quartz(pointsize = 12) # define point size
par(mar=c(3,3,1,1), family = "Helvetica")    # define family
plot(...)

因此,对于pdf()绘图导出和quartz()输出,由于它们不同时运行 - 我使用pdf()导出我的绘图,但是quartz()只是将绘图复制到MS Word文档中。
library(extrafont)       # library needed to have your fonts
loadfonts() ## for pdf() 

# pdf plot export - now doesn't run, because now I want just check changes in my quartz() plotting
# pdf("my_plot_in_pdf.pdf", height = 4, width = 4, family = "Helvetica") 

quartz(height = 4, width = 4, pointsize = 12)  # check my changes in plot, if I want to export my plot, I just set #quartx(...)
    par(mar=c(4,4,1,1), family = "Helvetica")
    plot(cars, main = "Helvetica, 12", ylab = "y label", xlab = "x label", cex = 1)
    dev.off()

enter image description here

或者改变我的家族和点大小:

quartz(height = 4, width = 4, pointsize = 20)
par(mar=c(4,4,1,1), family = "Times New Roman")
plot(cars, main = "Times New Roman, 20", ylab = "y label", xlab = "x label", cex = 1)
dev.off()

enter image description here


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