[英]Cannot embed ggplot2 (/R) fonts in PDF with ggsave()
我已经在ggplot2-plot中添加了一种字体,当在RStudio的绘图查看器中查看时,它可以完美地工作。 但是,当我尝试将图另存为PDF时,根本不会打印任何文本(请参见下面的代码和图片):
df <- data.frame(x = c(1:10), y = c(1:10)) # Dummy data
plot <- ggplot(df, aes(x, y)) + # Dummy plot
geom_point() +
labs(title = "Correct font in R, NO fonts at all in pdf :-(") +
theme(text = element_text(family = "latex"))
然后,我尝试使用以下代码ggsave()绘制:
ggsave("df_plot.pdf",
plot = plot,
device = "pdf",
dpi = 320)
但是我收到一条错误消息:
grid.Call.graphics(C_text,as.graphicsAnnot(x $ label),x $ x,x $ y,错误:无效的字体类型
以下是带有正确字体的绘图(在RStudio中)+写入我的pdf文件的绘图(完全没有字体):
我在这里想念什么? 我已经尝试过使用extrafont软件包进行各种操作,但是pdf也不在其中打印字体(如果已打印,则只是默认字体)。
您可以考虑使用extrafont
软件包:
library(tidyverse)
library(extrafont)
fonts()
df <- data.frame(x = c(1:10), y = c(1:10)) # Dummy data
windowsFonts(Calibri = windowsFont("Calibri"))
plot <- ggplot(df, aes(x, y)) + # Dummy plot
geom_point() +
labs(title = "Correct font in R, NO fonts at all in pdf :-(") +
theme(text = element_text(size=15, family= "Tw Cen MT Condensed Extra Bold"))
ggsave("df_plot.pdf",
plot = plot,
device = cairo_pdf,
dpi = 320)
实际上, ggsave()
对于我来说似乎工作正常。 错误实际上是将theme(text = element_text(family = "latex"))
到绘图中。
稍微调整一下示例
df <- data.frame(x = c(1:10), y = c(1:10)) # Dummy data
plot <- ggplot(df, aes(x, y)) + # Dummy plot
geom_point() +
labs(title = "Correct font in R, NO fonts at all in pdf :-(")
ggsave("df_plot.pdf",
plot = plot,
device = "pdf",
dpi = 320)
#Saving 10.7 x 8.01 in image
但,
plot + theme(text = element_text(size=10, family="LM Roman 10"))
产生您发现的错误:
grid.Call(C_textBounds,as.graphicsAnnot(x $ label),x $ x,x $ y,错误:找不到多边形边缘。
此问题已在此处得到解答: grid.Call(L_textBounds,as.graphicsAnnot(x $ label),x $ x,x $ y,错误:找不到多边形边缘
这些建议对您有用吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.