我无法在geom_text中设置我的字体。这是我试过的:
labels_test<-data.frame(a=c("a","b","c"),b=c(1:3),c=c(3:1))
# works
ggplot () + geom_text(data=labels_test,aes(b,c,label=a),color="blue")
# does not work:
ggplot () + geom_text(data=labels_test,aes(b,c,label=a),color="blue",family="Times")
# error message: In grid.Call.graphics(L_text, as.graphicsAnnot(x$label), x$x, x$y,:
# Font family not found in Windows font database
我已按照指示here导入了所有字体。还有什么想法仍然存在问题?
答案 0 :(得分:27)
我会尝试&#34;
windowsFonts(Times=windowsFont("TT Times New Roman"))
在执行此操作时,您明确指定Windows字体映射。
答案 1 :(得分:23)
其他答案没有解决我的问题(Windows 10)。
我的系统的关键是在 extrafont::loadfonts(device="win")
之前致电library(ggplot2)
。
extrafont::loadfonts(device="win")
#extrafont::fonttable()
#extrafont::font_import("C:/Windows/Fonts/", pattern = "RobotoCondensed")
library(ggplot2)
字体位置的常见问题:
我之前使用extrafont::font_import()
从随机文件夹中安装了字体。因此extrafont::fonttable()
引用了C:\Windows\Fonts\
文件夹中的文件。要解决此问题,请使用extrafonts::fonttable()
重置install.packages("extrafontdb")
,以清除对其他位置字体的引用。
关于保存的修改:
深入兔子洞。储蓄是一项额外的挑战。为extrafont::loadfonts(device="pdf")
我必须确保extrafont::fonttable()
中的字体没有相同的姓氏和粗体/斜体状态。我编辑了extrafont:::fonttable_file()
以解决我家中任何重复的粗体/斜体字体问题。使用Roboto Condensed我将light fonts的字体系列重命名为“Roboto Condensed Light”。
使用ggsave(device="pdf")
保存然后工作了。在acrobat中打开文件时,字体无法正确显示。我尝试使用ghostscript嵌入字体以及使用cairo_pdf设备。最简单,最实用的解决方案是在Illustrator中打开.pdf文件(字体显示在那里很好)并立即将它们重新保存为.pdf。
关于保存的编辑2:
保存为.eps是在illustrator和acrobat中保存文件的唯一方法。结果很完美。 ggsave(g, file="Figure.eps", fonts=c("FONT FAMILIES USED", "Roboto Condensed", "Roboto Condensed Light"))
最终绘图代码:
这是我在绘图之前使用的最后一组调用。注释是需要仅运行一次的设置命令。
# Plotting
extrafont::loadfonts(device="pdf")
extrafont::loadfonts(device="postscript")
# extrafont::font_import("C:/Windows/Fonts/", pattern = "RobotoCondensed", prompt = F)
# extrafont::fonttable()
# C:/Program Files/R/R-3.3.1/library/extrafontdb/fontmap/ - Change lights to "Roboto Condensed Light"
# After ggsave(device="pdf") or ggsave(device="eps") open and resave the file in Illustrator
library(hrbrthemes)
library(ggplot2)
答案 2 :(得分:14)
您必须使用以下命令导入系统字体:
font_import(paths = NULL, recursive = TRUE, prompt = TRUE,pattern = NULL)
答案 3 :(得分:1)
我在这里尝试了不同的解决方案,但没有一个适合我(win10,R 3.4.3)。 这对我有用:
install.packages("extrafont")
library(extrafont)
loadfonts(device = "win")
我在library(ggplot2)
之前还是之后都没关系
来源: