ggplot字体系列版本之间的变化

Geo*_*tas 10 windows fonts r ggplot2

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

图片

slm*_*slm 10

您可能需要查看此页面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
Run Code Online (Sandbox Code Playgroud)

您可以像这样运行它:

% R
> source ("make_font_table.R")
> pf
Run Code Online (Sandbox Code Playgroud)

   字体表的ss

注意:实际上只有部分字体(Timea,Helvetica,Courier)被渲染.

您也可以查看extrafont-package.最后这篇文章展示了如何使用extrafont-package,以便在输出中呈现更好看的字体.