前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >「R」使用Jupyter Notebook那些事

「R」使用Jupyter Notebook那些事

作者头像
王诗翔呀
发布2022-03-30 08:44:42
4550
发布2022-03-30 08:44:42
举报
文章被收录于专栏:优雅R

在操作的一台服务器的R没有X11支持,Jupyter一运行代码就报错Kernel挂掉。而RStudio Server可以直接点击切换图形后端为Cairo。Jupyter 怎么搞呢?

首先尝试了Stack Overflow的一个办法,在 ~/.Rprofile 中加入代码:

代码语言:javascript
复制
setHook(packageEvent("grDevices", "onLoad"),
        function(...) grDevices::X11.options(type = "cairo"))
options(device = "x11")

最后还是在IRkernel的官方仓库问题区看到解决的办法:

https://github.com/IRkernel/IRkernel/issues/388

加入下面的语句就可以了。

代码语言:javascript
复制
## Set default 'type' for png() calls - useful when X11 device is not available!
## NOTE: Needs 'cairo' capability
options(bitmapType='cairo')

完成后重启下Jupyter,然后等待一会,再试一试。

另外,由于Jupyter无法像R一样拖动绘图窗口实时修改图形大小,如果要改动的话需要 提前用下面的语句设置:

代码语言:javascript
复制
options(repr.plot.width = 4, repr.plot.height = 3)

我们可以写一个简化函数:

代码语言:javascript
复制
setplot = function(w=5, h=4, d = c("svg", "png")) {
  options(repr.plot.width = w, repr.plot.height = h)
  options(jupyter.plot_mimetypes = paste0("image/", switch(
    match.arg(d),
    png = "png",
    svg = "svg+xml"
  )))
}
setplot()

Jupyter 对 SVG 支持的更好,默认用这个看起来更舒服。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 优雅R 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档