我正在使用R 3.5.2。在Mac Mojave 10.14.4上。几天以来,我的标准绘图中的文字出现问题。用ggplot绘制图也不起作用。我收到消息说:
对于标准地块:
警告消息: 1:在doTryCatch(return(expr),name,parentenv,handler)中: 找不到“ Arial”家族的字体
对于具有ggplot2的图:
grid.Call(C_textBounds,as.graphicsAnnot(x $ label),x $ x,x $ y,
中的错误 :找不到多边形边缘
欢迎提出任何可以继续解决问题并解决问题的建议?
我已经尝试过的以下步骤:
par(family = "Arial")
作为解决方法,但这不适用于ggplot2。根据MacOSX,所有字体均已安装,有效且没有重复,但我仍然无法使用R访问它们。
这是我正在测试的代码:
x <- seq(1, 10,1)
y <- rnorm(10, 4,1)
plot(y~x)
library(ggplot2)
# Basic normal curve
p <- ggplot(data.frame(x = c(-4, 4)), aes(x = x)) +
stat_function(fun = dnorm, size=1.5)
p
答案 0 :(得分:0)
您是否尝试过使用font_import()
?之后,fonts()
为我提供了我可以使用的新字体(以前没有的字体)。
然后,我可以使用family
中的theme()
-属性编辑字体:
x <- seq(1, 10,1)
y <- rnorm(10, 4,1)
plot(y~x)
library(ggplot2)
library(extrafont)
fonts()
font_import(prompt = TRUE)
fonts()
# Basic normal curve
p <- ggplot(data.frame(x = c(-4, 4)), aes(x = x)) +
stat_function(fun = dnorm, size=1.5) + theme(text = element_text(family = "Arial"))
p
更新:
即使没有extrafont
软件包,我也可以使用它。
答案 1 :(得分:0)
与extrafont
平行,这是使用showtext
的解决方案。
library(showtext)
font_add("Arial", "/Library/Fonts/Arial.ttf") # Use the actual file path
showtext_auto()
x <- 1:10
y <- rnorm(10, 4, 1)
pdf("plot1.pdf")
plot(y ~ x, family = "Arial")
dev.off()
library(ggplot2)
# Basic normal curve
p <- ggplot(data.frame(x = c(-4, 4)), aes(x = x)) +
stat_function(fun = dnorm, size = 1.5) +
theme(text = element_text(family = "Arial"))
ggsave("plot2.pdf", p)
答案 2 :(得分:0)
建议将建议的行放在主目录.rprofile文件中。如果您家中没有此文件,请创建一个。每次您启动R会话时都会执行该命令。但是,此修复程序只为我提供了有效的屏幕图像-当我去复制石英窗口并将其粘贴到另一个应用程序(例如“预览”)时,它不起作用。
从终端执行的这两行代码解决了该问题。不需要font_add()。
iMac:〜> cd / Users / MyUserName / Library / Fonts
iMac:Fonts> cp / Library / Fonts / Arial *。