【问题标题】:Theme setting, fonts, and graphics quality changing without prompt无提示更改主题设置、字体和图形质量
【发布时间】:2018-07-27 13:53:11
【问题描述】:

我正在编写一个基于 dropbox 文件夹的脚本,在 Mac 和 PC 之间工作。有一天,没有任何改变,图形不再读取 Windows 字体数据库,并且不再应用绘图主题。我可以使用

手动设置字体
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(空设备)”

但这也提供了所需的输出。 Image 1 显示我的初始输出,image 2 现在显示输出,使用相同的代码。可以注意到线条的质量差异,以及主题设置的变化(字体、线条质量)

图片 1:

图 2:

【问题讨论】:

  • 最近更新的 R/ggplot2/windows/OSX ?
  • 我知道 - 可能并不完全令人满意 - 但可能会使用更常用的字体,尤其是当您想要分发脚本时?
  • @Tjebo 我已经更新了 R,我认为 OSX 和 Windows 计算机的版本不同...以某种方式破坏了我的脚本...一旦修复,如果它有效,将发表评论。感谢您的评论。
  • 更新 R + 包没有提供解决方案
  • 只是一个疯狂的猜测,当您说使用 windowsFonts(...) 设置字体时 - 您是否尝试过 theme(base_family= windowsFonts(...)) ? (实际上我通常使用非常常见的字体,所以永远不会遇到这样的问题

标签: r ggplot2 rstudio


【解决方案1】:

这需要一些额外的步骤,

首先,使用

添加字体
extrafont::load_fonts(device = "win")

其次,通过使用 ggsave 将输出保存为单独的文件(我最初是从剪贴板复制的),这让我可以指定输出质量。

ggsave("file.jpg", dpi = 500)

【讨论】:

    猜你喜欢
    • 2011-07-21
    • 2011-12-15
    • 1970-01-01
    • 2017-09-30
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    • 2016-06-13
    • 1970-01-01
    相关资源
    最近更新 更多