情节崩溃与图书馆emojifont会议

时间:2017-08-17 08:36:58

标签: r plot emoji

当我加载library(emojifont)时,以下情节完全崩溃了我的会话。这个脚本几个月前就已经运行了,库也有相同的版本。我自己的安装可能有些东西,因为维护者无法重现问题(as I posted an issue on github)。但我没有线索 我使用Ubuntu 16.04。图书馆emojifont版本0.50。

  

R version 3.4.1(2017-06-30) - “Single Candle”
  版权所有(C)2017 R统计计算基础
  平台:x86_64-pc-linux-gnu(64位)

确实,我评论了以下行为:

测试1

如果我在新会话中按此顺序运行代码,第一个图表就可以了:

# Order 1 ----
x <- rnorm(10)
y <- rnorm(10)
plot(x, y, cex=0)

library(emojifont)
text(x, y, labels=emoji('cow'), cex=1.5, col='steelblue', family='OpenSansEmoji')

order_ok 但是,如果我关闭该情节并在同一会话中绘制一个新的plot(x, y, cex=0),则会话崩溃。

测试2

如果在新会话中,我在绘图之前调用了库,则对绘图的调用会直接崩溃会话,即使内部没有emoji

# Order 2 ----
library(emojifont)
x <- rnorm(10)
y <- rnorm(10)
plot(x, y, cex=0)
# Dont have time to run this line, the session crashes
text(x, y, labels=emoji('cow'), cex=1.5, col='steelblue', family='OpenSansEmoji')

错误如下:

  

Erreur:C堆栈使用量140727315310780太接近极限了   De plus:警告信息:
  在轴(side = side,at = at,labels = labels,...):字体系列'T ?? VUUUUU?%P?,@ 73 @'未找到,将使用'wqy-microhei'代替
  Erreur:

message_before_crash

似乎无法识别字体,但我尝试在我的计算机上直接安装两个字体系列,但这并没有改变。顺便说一句,如果我只在控制台中发送emoji('evergreen_tree'),它会返回表情符号,它假定字体系列已被识别:

[1] ""

我更新了所有库并重新安装了emojifont emojifont中有什么可以修改绘图行为吗?我的安装中的内容可以更改为产生此问题?

1 个答案:

答案 0 :(得分:2)

由于Ubuntu中的库libfreetype6-dev已更新,因此有必要重新安装库emojifont。但是,您还必须重新安装它所依赖的库:

install.packages(c("sysfonts", "showtextdb", "showtext"))
install.packages("emojifont")

这解决了这个问题。 谢谢@Roland向我展示了方向。