Colab 中 Python noyebooks 中的 R ggplot2
Posted
技术标签:
【中文标题】Colab 中 Python noyebooks 中的 R ggplot2【英文标题】:R ggplot2 in Python noyebooks in Colab 【发布时间】:2021-10-09 12:20:04 【问题描述】:我尝试在 Colab 中运行演示文稿“使用 PYTHON 和 R 进行视觉演示的 POLYGLOT 数据分析”Python notebook, running R code dated 2016 from github repo
但它说 lazyeval 包不存在。
当我尝试安装它时
%%R
install.packages("lazyeval")
输出类似
R[写入控制台]:将包安装到“/usr/local/lib/R/site-library” (因为未指定“lib”)
R[写入控制台]:尝试 URL 'https://cran.rstudio.com/src/contrib/lazyeval_0.2.2.tar.gz'
R[写入控制台]:内容类型“应用程序/x-gzip” R[写入控制台]:长度 83482 字节 (81 KB)
R[写入控制台]: = R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:= R[写入控制台]:
R[写入控制台]:已下载 81 KB
R[写入控制台]:
R[写入控制台]: R[write to console]:下载的源码包在 '/tmp/Rtmp6hM38b/downloaded_packages' R [写入控制台]: R[写入控制台]:
但没有显示任何图表,输出单元格内的输出类似于完整的 html 页面(复制|粘贴单元格内容)
<html>
<body>
<!--StartFragment--><span style="color: rgb(33, 33, 33); font-family: Roboto, Noto, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">GGPlot with 9 elements.</span><span style="color: rgb(33, 33, 33); font-family: Roboto, Noto, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;"></span>
data | R/rpy2 DataFrame (6161 x 8)Request.IDStatusAction.Type...AddressPlatformSubmitted.By'REQ194189''Closed''Repair P......'Concord ...'''bsmyth''REQ194190''Closed''Repair P...'Sunset R...'''bsmyth''REQ194191''Closed''Repair P...'Blanchar...'''bsmyth''REQ194192''Closed''Repair P...'Rindge A...'''bsmyth'..................'REQ545410''Assigned''Repair P...'''ios''web-serv...'REQ545521''Assigned''Repair P...'''''web-serv...'REQ545560''Assigned''Repair P...'''android''web-serv...'REQ545621''Assigned''Repair P...'''''web-serv... | Request.ID | Status | Action.Type | ... | Address | Platform | Submitted.By | 'REQ194189' | 'Closed' | 'Repair P... | ... | 'Concord ... | '' | 'bsmyth' | 'REQ194190' | 'Closed' | 'Repair P... | | 'Sunset R... | '' | 'bsmyth' | 'REQ194191' | 'Closed' | 'Repair P... | | 'Blanchar... | '' | 'bsmyth' | 'REQ194192' | 'Closed' | 'Repair P... | | 'Rindge A... | '' | 'bsmyth' | ... | ... | ... | | ... | ... | ... | 'REQ545410' | 'Assigned' | 'Repair P... | | '' | 'iOS' | 'web-serv... | 'REQ545521' | 'Assigned' | 'Repair P... | | '' | '' | 'web-serv... | 'REQ545560' | 'Assigned' | 'Repair P... | | '' | 'Android' | 'web-serv... | 'REQ545621' | 'Assigned' | 'Repair P... | | '' | '' | 'web-serv...
-- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | --
'REQ194189' | 'Closed' | 'Repair P... | ... | 'Concord ... | '' | 'bsmyth'
'REQ194190' | 'Closed' | 'Repair P... | | 'Sunset R... | '' | 'bsmyth'
'REQ194191' | 'Closed' | 'Repair P... | | 'Blanchar... | '' | 'bsmyth'
'REQ194192' | 'Closed' | 'Repair P... | | 'Rindge A... | '' | 'bsmyth'
... | ... | ... | | ... | ... | ...
'REQ545410' | 'Assigned' | 'Repair P... | | '' | 'iOS' | 'web-serv...
'REQ545521' | 'Assigned' | 'Repair P... | | '' | '' | 'web-serv...
'REQ545560' | 'Assigned' | 'Repair P... | | '' | 'Android' | 'web-serv...
'REQ545621' | 'Assigned' | 'Repair P... | | '' | '' | 'web-serv...
ListVector with 1 elements.[no name][RTYPES.ENVSXP] | [RTYPES.ENVSXP]
[RTYPES.ENVSXP]
add: function clone: function find: function get_scales: function has_scale: function input: function n: function non_position_scales: function scales: list super:
...
compute_layout: function draw_back: function draw_front: function draw_labels: function draw_panels: function finish_data: function init_scales: function map_data: function params: list setup_data: function setup_params: function shrink: TRUE train_scales: function vars: function super:
ListVector with 3 elements.x[RTYPES.STRSXP]y[RTYPES.STRSXP]weight[RTYPES.STRSXP] | [RTYPES.STRSXP] | [RTYPES.STRSXP] | [RTYPES.STRSXP]
[RTYPES.STRSXP]
[RTYPES.STRSXP]
[RTYPES.STRSXP]
<!--EndFragment-->
</body>
</html>
很遗憾,presentaion 项目似乎无法添加问题。
SO Using R in Python with Rpy2: how to ggplot2? 有一个帖子,里面有代码
import numpy as np
import pandas as pd
import rpy2.robjects.packages as packages
import rpy2.robjects.lib.ggplot2 as ggplot2
import rpy2.robjects as ro
R = ro.r
datasets = packages.importr('datasets')
mtcars = packages.data(datasets).fetch('mtcars')['mtcars']
gp = ggplot2.ggplot(mtcars)
pp = (gp
+ ggplot2.aes_string(x='wt', y='mpg')
+ ggplot2.geom_point(ggplot2.aes_string(colour='qsec'))
+ ggplot2.scale_colour_gradient(low="yellow", high="red")
+ ggplot2.geom_smooth(method='auto')
+ ggplot2.labs(title="mtcars", x='wt', y='mpg'))
pp.plot()
R("dev.copy(png,'/tmp/out.png')")
但在 Colab 中它只是输出
R[写入控制台]:
geom_smooth()
使用方法 = 'loess' 和公式 'y ~ x'
具有 1 个元素的 IntVector。 5
在 Colab 的 Python 笔记本中使用 R ggplot2 代码的正确方法是什么以及如何修复笔记本?
【问题讨论】:
【参考方案1】:该演示文稿是 6 年前的。它应该与当时使用的 Python 和 R 版本一起运行(连同它们各自的包,以及当时的版本)。
否则,某些内容会出现在 rpy2 文档或其他更新的文章中。
笔记本中的rpy2:https://rpy2.github.io/doc/v3.4.x/html/generated_rst/notebooks.html 关于将 R 混合到 Python 中,以及关于笔记本的更多信息:https://medium.com/@lgautier/rpy2-is-turning-13-47b2c2689095 ggplot2:https://rpy2.github.io/doc/v3.4.x/html/graphics.html#package-ggplot2 dplyr:https://rpy2.github.io/doc/v3.4.x/html/lib_dplyr.html#dplyr【讨论】:
以上是关于Colab 中 Python noyebooks 中的 R ggplot2的主要内容,如果未能解决你的问题,请参考以下文章
在 Python 中嵌入 Matplotlib 动画(google colab notebook)