当我从emojifont包中使用fontawesome命令时,出现一个正方形,而不是我要求的图标。我对R相当陌生,可能缺少一些非常简单的东西,但这使我陷入了一段时间。
我正在使用RStudio运行Windows 10,R版本是最新的。 据说这些命令可以在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'))
在上面的图像(以及我尝试过的大多数示例)中,我得到了正方形而不是图标。有什么想法吗?
答案 0 :(得分:1)
我认为它不应该在控制台上打印,而只能在绘图中打印。
基本上,您正在做的是询问emojifont / fontawesome,Unicode中可能超过一百万个代码点中的哪个对应于一个“圆”(它是代码点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()
的原因是,standard-rstudio-plotwindow有时使用其自己的默认值,因此可能找不到fontawesome。但这仅与RStudio中的绘图有关。