【问题标题】:r- emojifont package's font-awesome command not displaying icons in Windows 10r- emojifont 包的 font-awesome 命令在 Windows 10 中不显示图标
【发布时间】:2018-12-22 05:23:15
【问题描述】:

当我使用 emojifont 包中的 fontawesome 命令时,我得到一个正方形,而不是我请求的图标。我对 R 相当陌生,我可能缺少一些非常简单的东西,但这让我卡了一段时间。

我正在运行 Windows 10,R 版本是最新的,使用 RStudio。 据报道,这些命令可以在 linux 计算机上正常运行,请参阅之前的讨论:Replace categorical values with traffic light colors

在另一个问题中,用户说要运行 Windows()。这没有区别,重要吗? using font awesome in ggplot

示例代码

> library(emojifont)
> load.fontawesome()

> fontawesome('fa-circle')
[1] ""

> fontawesome('fa-apple')
[1] ""

> fontawesome('fa-at')
[1] ""

更新: 我可以在线复制一些简单的示例,但不能复制其他示例。

set.seed(123)
x <- rnorm(10)
set.seed(321)
y <- rnorm(10)
plot(x, y, cex=0)
text(x, y, labels=emoji('cow'), cex=1.5, col='steelblue', family='EmojiOne')

d <- data.frame(x=x, y=y,
                label = sample(c(emoji('cow'), emoji('camel')), 10, replace=TRUE),
                type = sample(LETTERS[1:3], 10, replace=TRUE))

library("ggplot2")
ggplot(d, aes(x, y, color=type, label=label)) +
  geom_text(family="EmojiOne", size=6)

这可以正常工作,如下所示

然而,这段代码只产生正方形(以及我尝试过的大多数其他示例)

set.seed(2016-03-09)
fa <- fontawesome(c('fa-github', 'fa-weibo', 'fa-twitter', 'fa-android', 'fa-coffee'))
d <- data.frame(x=rnorm(20),
                y=rnorm(20),
                label=sample(fa, 20, replace=T))

ggplot(d, aes(x, y, color=label, label=label)) +
  geom_text(family='fontawesome-webfont', size=6)+
  xlab(NULL)+ylab(NULL) +
  theme(legend.text=element_text(family='fontawesome-webfont'))

在上面的图片(以及我尝试过的大多数示例)中,我得到的是正方形而不是图标。关于为什么的任何想法?

【问题讨论】:

  • 试试post中建议的方法。为我工作,即使某些字体很棒的符号无法使用 emojifont

标签: r font-awesome


【解决方案1】:

我认为它不应该在控制台上打印,而只能在绘图中。

基本上,您正在做的是询问 emojifont/fontawesome,在 Unicode 中可能超过 100 万个代码点中,哪一个对应于一个“圆圈”(它是代码点 f51d),然后打印该字符。

在绘图中,您可以说您希望以某种字体打印该字符,如果您选择“fontawesome-webfont”,例如在 emojifont 的示例中,这些圆圈将被绘制。

ggplot(d, aes(x, y, color=label, label=label)) +
    geom_text(family='fontawesome-webfont', size=6)

现在,如果您选择不同的字体系列,这些标签将以不同的字体打印。

除了在实践中,制作字体的人会仔细考虑如何绘制他们的a和b等。但他们不会有太多时间考虑如何绘制“codepoint f51d”,即使他们知道那应该只是一个圆圈。而且他们不希望任何人使用这种晦涩难懂的代码点。

所以他们会处理他们希望使用的字符,并且只为其他字符使用占位符,例如“”

在控制台中,您将拥有一个默认字体,具体取决于您使用的控制台,例如在我的 Rstudio 安装中使用了“Lucida 控制台”。不确定控制台中显示的是什么字体,但显然它对“codepoint f51d”没有很好的表示

所以为了显示它,你需要用正确的字体显示它:fontawesome。这意味着要么进行绘图,要么将控制台设置为使用 fontawesome。虽然我不确定最后一个是否有效,但它可能会导致简单的字符(例如“A”)也显示占位符,或者他们可能用它来显示完全不同的东西。

使用windows() 的原因是标准的rstudio-plotwindow 有时会使用自己的默认值,并且可能不会觉得字体很棒。但这仅与在 RStudio 中绘图有关。

【讨论】:

  • 感谢您的想法,您可能是对的。但是我无法重现任何字体。即使按照网上的简单示例,我的图表中也会出现彩色方框。
  • 对不起,那我帮不了你了。我猜 emojifont-package 在检查字体是否安装正确方面有更多帮助,也许在没有 Rstudio 的情况下尝试代码可能会有所帮助。
  • 感谢 Emil,在探索了更多之后,似乎我可以在网上重新生成一些示例,但不能重新生成其他示例。我会编辑Q。你在哪里有很多帮助谢谢。
猜你喜欢
  • 2013-05-10
  • 2022-01-18
  • 1970-01-01
  • 2020-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多