gpt4 book ai didi

shiny - 在 Shinyapps.io 上使用自定义字体

转载 作者:行者123 更新时间:2023-12-04 01:30:22 25 4
gpt4 key购买 nike

我想在 Shinyapps.io 上的 Shiny 应用程序(在绘图上)中使用自定义字体。我在 ./www/ 目录中有我的 Roboto-Regular.ttf。这是我的 app.R 文件的上半部分:

dir.create('~/.fonts')
system("chmod +x ./www/Roboto-Regular.ttf")
system("cp ./www/Roboto-Regular.ttf ~/.fonts/")
system('fc-cache -f -v ~/.fonts/')
system('fc-match Roboto')

library(ggplot2)
library(shiny)
library(shinythemes)

library(extrafont)
font_import(pattern="Roboto",prompt=FALSE)
loadfonts()
print(fonts())

部署应用程序后,我最终得到一个如下所示的错误:
Registering fonts with R
Scanning ttf files in /usr/share/fonts/, ~/.fonts/ ...
Extracting .afm files from .ttf files...
/home/shiny/.fonts/Roboto-Regular.ttfWarning in gzfile(dest, "w") :
cannot open compressed file '/opt/R/3.5.1/lib/R/library/extrafontdb/metrics/Roboto-Regular.afm.gz', probable reason 'Permission denied'
Error in value[[3L]](cond) : cannot open the connection
Calls: local ... tryCatch -> tryCatchList -> tryCatchOne -> <Anonymous>
Execution halted

有没有人看到可能有什么问题?

最佳答案

经过一番努力,我找到了一个更简单的解决方案,适用于 shinyapps.io :

开始了:

  • 将自定义字体放在 www 目录中:例如IndieFlower.ttf 来自 here
  • 按照 here
  • 中的步骤操作

    这导致 app.R 文件的以下上部:
    dir.create('~/.fonts')
    file.copy("www/IndieFlower.ttf", "~/.fonts")
    system('fc-cache -f ~/.fonts')

    由于 Linux 会查看 .fonts 目录来搜索字体,因此您不需要 extrafont 包,但您可以直接使用这些字体,例如:
    ggplot(mapping=aes(x=seq(1,10,.1), y=seq(1,10,.1))) +
    geom_line(position="jitter", color="red", size=2) + theme_bw() +
    theme(text=element_text(size = 16, family = "IndieFlower"))

    关于shiny - 在 Shinyapps.io 上使用自定义字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51812219/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com