R 主题设置、字体和图形质量在无提示的情况下更改
我正在写一个基于dropbox文件夹的脚本,在mac和PC之间工作。有一天,图形不再读取Windows字体数据库,绘图主题也不再应用。我可以使用手动设置字体R 主题设置、字体和图形质量在无提示的情况下更改,r,ggplot2,rstudio,R,Ggplot2,Rstudio,我正在写一个基于dropbox文件夹的脚本,在mac和PC之间工作。有一天,图形不再读取Windows字体数据库,绘图主题也不再应用。我可以使用手动设置字体 windowsFonts(Lato =windowsFont("Lato")) 但它不会修复主题设置,也不会更改指定的字体(注释) 此脚本不可复制,但显示了我的主题设置: data %>% ggplot((aes(x = year, y = sum, group = country_classification, co
windowsFonts(Lato =windowsFont("Lato"))
但它不会修复主题设置,也不会更改指定的字体(注释)
此脚本不可复制,但显示了我的主题设置:
data %>%
ggplot((aes(x = year, y = sum, group = country_classification, color = country_classification)) +
geom_line(aes(color = country_classification), lwd = 1.5, alpha=.7) +
scale_color_gcf(palette = "mixed")+
theme_bw(base_family = "Lato") +
xlab("") +
ylab("")+
scale_y_continuous(labels = dollar) +
geom_segment(aes(x = 4, xend = 4, y = 7836967, yend = 2440845),
lty = 2, lwd = .5, colour = "darkgray") +
annotate("text",x = 3.7, y = 5000000, family = "Lato",
label = "$5.3M \nDifference \n2018") +
geom_point(aes(color = country_classification, size = sum), alpha = .7) +
labs(title = "Annual Disbursement Sums by \nCountry Classification")+
theme(axis.title = element_text(size = 10)) +
theme(legend.text = element_text(size = 10)) +
theme(legend.title = element_text(size = 10)) +
theme(axis.ticks = element_blank()) +
theme(panel.border = element_blank()) +
theme(axis.line = element_blank()) +
#theme(panel.grid = element_blank())+
theme(axis.text.x = element_text(size = 10))
显示以下警告消息:
In grid.Call(C_textBounds, as.graphicsAnnot(x$label), ... :
font family not found in Windows font database
dev.off()
导致“dev.off()出错:无法关闭设备1(空设备)”
但这也提供了所需的输出<代码>图像1显示我的初始输出,图像2
使用相同的代码显示现在的输出。可以注意到行的质量差异,以及主题设置的更改(字体、行质量)
图1:
图2:
它需要一些额外的步骤 首先,使用
extrafont::load_fonts(device = "win")
其次,通过使用ggsave将输出保存为一个单独的文件(我最初是从剪贴板复制的),它允许我指定输出质量
ggsave("file.jpg", dpi = 500)
最近更新的R/ggplot2/windows/OSX?我知道-可能不太令人满意-但可能会使用更常用的字体,尤其是当你想分发脚本时?@Tjebo我更新了R,我认为OSX和windows计算机的版本不同…不知何故破坏了我的脚本…一旦修复,如果它有效,将发表评论。感谢您的评论。更新R+软件包并没有提供解决方案,只是一个猜测,当您说用windowsFonts(…)设置字体有效时-您是否尝试过主题(base_family=windowsFonts(…)?(事实上,我通常使用非常常见的字体,所以从来没有遇到过这样的问题