在下图中,您可以看到在两台不同(Windows)机器中创建的 ggplot 图的相同部分。在每个图表上方,我都写了相关包的版本。我没有font family
在 ggplot 调用中使用任何设置。为什么我在最新版本中得到不同的字体?(这个变化让我想起了Cleartype
设置对平滑字体边缘的影响)
问问题
2738 次
1 回答
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
你可以像这样运行它:
% R
> source ("make_font_table.R")
> pf
注意:实际上只有一些字体(Timea、Helvetica、Courier)被渲染。
此外,您可能想查看extrafont-package。最后,这篇文章展示了如何使用 extrafont-package 以便您在输出中获得更好看的字体。
于 2013-01-12T04:56:51.140 回答