R中的Awesome字体,已加载但未由waffle找到

时间:2018-07-12 17:37:45

标签: r font-awesome waffle-chart

我从this website下载了otf文件。我的IT部门安装了“ Font Awesome 5 Free Regular”,并且我使用了

library(extrafont)
font_import()
loadfonts(device = "win")

我可以看到Font Awesome被注册为“ Font Awesome 5 Free Regular”。 当我尝试将其与此测试代码一起使用时:

waffle(c(50, 30, 15, 5), rows = 5, use_glyph = "music", glyph_size = 6)

我明白了

Error: FontAwesome not found. Install via: https://github.com/FortAwesome/Font-Awesome/tree/master/fonts

但是该链接没有任何地方。

我想使用Font Awesome(或一个不错的选择)制作有趣的华夫饼图。我加载字体不正确吗?我还缺少更好的选择吗?我一直在使用此article作为指导。我还在on stackoverflow处阅读了一个相关的问题,但这没有帮助。我已经重启Rstudio(和计算机)好几次了,没有运气。

更新

仍然无法正常工作。我已经删除并重新安装了华夫饼和emojifont软件包。我仍然收到错误代码:“错误:找不到FontAwesome。通过以下方式安装:https://github.com/FortAwesome/Font-Awesome/tree/master/fonts

4 个答案:

答案 0 :(得分:2)

我知道这个问题是在很久以前提出并回答的,但是答案对我的代码没有帮助,并且我从此来源找到了一些东西:https://www.listendata.com/2019/06/create-infographics-with-r.html 他们具有使用extrafont库下载fontawesome的分步指导。真的很容易。希望这对某人有帮助!基本上,下载fontawesome-webfont.ttf,然后:

library(extrafont)
extrafont::font_import (path="C:/Users/insert/your/own/path", pattern = "awesome", prompt = FALSE)
loadfonts(device = "win")
# check to see if it works:
fonts()[grep("Awesome", fonts())]
#returns fontawesome

然后在制作华夫饼图时使用use_glyph = 参数。

答案 1 :(得分:1)

如果要在ggplot2绘图中使用超棒的字形,则可以使用出色的emojifont包。无需手动添加字体。

library("emojifont")
library("waffle")
waffle(c(50, 30, 15, 5), rows = 5, use_glyph = "music", glyph_size = 4)

这将产生您所关注的图形:

enter image description here

更新:由于您已经安装了otf字体,而不是ttf字体,所以可能会引起问题。 load.fontawesome()软件包中的emojifont函数具有默认参数:

load.fontawesome(font = "fontawesome-webfont.ttf")

您可以尝试1)安装字体的ttf版本或2)调用

load.fontawesome(font = "fontawesome-webfont.otf")

在绘制之前(尽管我不确定后者是否可以工作)。值得一试。

答案 2 :(得分:1)

对于 2021 年来到这里但未能与 extrafont 一起使用的任何人,这里是另一种方法:

  1. 使用旧的 FontAwesome ttf,Silviculturalist 链接到: https://github.com/FortAwesome/Font-Awesome/releases/tag/v4.7.0
  2. fontawesome-webfont.ttf 解压到您的工作目录(或您可以访问的某个目录)
  3. 使用 waffleemojifontshowtext 包创建图表,示例代码如下
install.packages(c("waffle", "emojifont", "showtext"))
 
library(waffle)
library(emojifont)
library(showtext)

font_add(family = "FontAwesome", 
         regular = "fontawesome-webfont.ttf")

waffle(c(5,12,18), rows = 5, use_glyph = "subway", glyph_size = 10, 
title = "Subways!", legend_pos="right")

答案 3 :(得分:0)

您可能想尝试使用FontAwesome v. 4.7,我遇到了与您相同的问题,但是当我安装.ttf版本时,它可以立即解决。