当我加载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位)
确实,我评论了以下行为:
如果我在新会话中按此顺序运行代码,第一个图表就可以了:
# 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')
但是,如果我关闭该情节并在同一会话中绘制一个新的plot(x, y, cex=0)
,则会话崩溃。
如果在新会话中,我在绘图之前调用了库,则对绘图的调用会直接崩溃会话,即使内部没有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:
似乎无法识别字体,但我尝试在我的计算机上直接安装两个字体系列,但这并没有改变。顺便说一句,如果我只在控制台中发送emoji('evergreen_tree')
,它会返回表情符号,它假定字体系列已被识别:
[1] ""
我更新了所有库并重新安装了emojifont emojifont中有什么可以修改绘图行为吗?我的安装中的内容可以更改为产生此问题?
答案 0 :(得分:2)
由于Ubuntu中的库libfreetype6-dev
已更新,因此有必要重新安装库emojifont
。但是,您还必须重新安装它所依赖的库:
install.packages(c("sysfonts", "showtextdb", "showtext"))
install.packages("emojifont")
这解决了这个问题。 谢谢@Roland向我展示了方向。