继续学R:重新装R / Installing R from source (3) 再也不装R了

之前为了解决PNG图片绘制以及--enable-R-shlib带来的性能折扣(其实我并不是很在意这个)问题,我决定再次重新装R。然后并没有解决我的问题,感觉好像掉进更深的坑里。


(图源 :pixabay)

然后有些家伙竟然要往坑里填土,着实太坏了。你以为填上土,落井下石就可以打倒O哥?太幼稚!再坑里填上土,浇点水,到了秋天,会长出好多好好O哥的。

哦,其实没用到秋天,用了几近一天的时间,O哥从坑里爬出来啦。

问题

之前说到第二次从源码重新装R并没有解决类似如下语句出错的问题:

png(file = "barchart.png")

看了一下,PNG、X11、cairo状态都是FALSE

我的要求并不高,png()能正常绘图就行。

思路

那么如何解决这个问题呢,我又开始疯狂搜索模式,大致有以下几个思路:

  • Linux下装X11 Server
    sudo apt-get install xorg openbox
  • 不装X,安装 virtual framebuffer X11 server
    apt-get install xvfb xauth xfonts-base
    xvfb-run
  • 配置X11转发(Xming等)
    #vi /etc/ssh/sshd_config
    X11 Forwarding yes
  • 使用cairo

前三种方式我没有去核实,仅供参考,接下来我们来看看第四种方式,使用cairo

cairo

对于我们遇到的问题,很多回答都建议png()前加上如下语句:

options(bitmapType='cairo')

原因是,R中png()使用默认的基于X11的设备,而我们的X11状态为FALSE,当然就用不起来了,上述语句的意思是让png()换用cairo

Cairo是一个2D图形库,支持多种输出设备。可是在回头看我们的输出

cairo状态也是FALSE,这就尴尬了啊。

于是使用如下命令安装Cairo

sudo apt-get install libcairo2-dev libxt-dev

然后重做R的编译配置

注意红框部分,对比一下我上个帖子中的截图:

哈哈,Cairo冒出来啦。

解决

然后就简单了,重新编译&安装,再来看一下

来试试上述方案工作不?

options(bitmapType='cairo')
png(file = "barchart.png")

耶,一切正常。但是每次都多敲一行是不是很别扭。这个文章下边的回答中给出了一个方案

vi .Rprofile
options(bitmapType='cairo')

关于.Rprofile,可以参考Customizing Startup

总结

好在解决了,不然在坑里的感觉真不好受。让我重新折腾一遍,我不确定我能否正确无误的装R(还好不是X语言),这玩意太折磨人了。

我觉得以后再也不装R了😭

相关链接

H2
H3
H4
3 columns
2 columns
1 column
4 Comments