ggplot字体家族之间的版本更改

在下面的图片中,您可以看到在两个不同的(Windows)机器中创build的ggplotgraphics的相同部分。 在每张图上方,我已经写了相关软件包的版本。 我没有在ggplot调用中使用任何font family设置。 为什么使用最新的版本获得不同的字体? (这个改变让我想起了Cleartype设置在平滑字体边缘的效果)

图片

你可能想看看这个页面, http: //wiki.stdout.org/rcookbook/Graphs/Fonts/,关于处理与ggplot / ggplot2字体问题的一些技巧。 还有一个R脚本的例子,它将生成所有渲染字体的表格,所以你可以在两个系统之间稍微比较一下。

make_font_table.R

 fonttable <- read.table(header=TRUE, sep=",", stringsAsFactors=FALSE, text=' Short,Canonical, mono,Courier, sans,Helvetica, serif,Times ,AvantGarde ,Bookman ,Helvetica-Narrow ,NewCenturySchoolbook ,Palatino ,URWGothic ,URWBookman ,NimbusMon URWHelvetica,NimbusSan ,NimbusSanCond ,CenturySch ,URWPalladio URWTimes,NimbusRom ') fonttable$pos <- 1:nrow(fonttable) library(reshape2) fonttable <- melt(fonttable, id.vars="pos", measure.vars=c("Short","Canonical"), variable.name="NameType", value.name="Font") # Make a table of faces. Make sure factors are ordered correctly facetable <- data.frame(Face = factor(c("plain","bold","italic","bold.italic"), levels = c("plain","bold","italic","bold.italic"))) fullfonts <- merge(fonttable, facetable) library(ggplot2) pf <- ggplot(fullfonts, aes(x=NameType, y=pos)) + geom_text(aes(label=Font, family=Font, fontface=Face)) + facet_wrap(~ Face, ncol=2) pf 

你可以像这样运行它:

 % R > source ("make_font_table.R") > pf 

字体表的ss

注意 :只有一些字体(Timea,Helvetica,Courier)实际上被渲染。

你也可能想看看extrafont包 。 最后,这篇文章演示了如何使用extrafont包,以便在输出中获得更好的字体效果。