ipython notebook R cell magic 作为 python 函数
ipython notebook R cell magic as a python function
我有一些 %rmagic 可以接收数据框并绘制它。我无法使用 python 中的当前 ggplot 实现来执行此操作。所以我想知道我是否可以使用函数将数据帧传递给包含 R 代码的单元格并可能返回它。这是我的想法:
#cell 1
def plot_in_r(dataframe):
pass_to_cell_2(dataframe)
#cell 2
%%R -i dataframe
ggplot(dataframe) + geom_bar()
它不一定是一个单元格到另一个单元格,但我需要将一些东西传递给 R 并通过我可以重复使用的函数让它在笔记本中绘制。
我想最简单的方法是在 R
中定义一个函数,它接受一个数据框并包含绘图逻辑。
必要的进口:
import rpy2
import pandas as pd
%load_ext rpy2.ipython
%R require("ggplot2")
正在创建虚拟数据框:
df1 = pd.DataFrame({"A": [1, 2, 3], "B": [1, 2, 3]})
df2 = pd.DataFrame({"A": [3, 2, 1], "B": [1, 2, 3]})
编写绘图函数:
%%R
plot_gg <- function(df) {
p <- ggplot(data=df) + geom_line(aes(x=A, y=B))
print(p)
}
最后只用两行代码绘制:
for df in df1, df2:
%Rpush df
%R plot_gg(df)
我有一些 %rmagic 可以接收数据框并绘制它。我无法使用 python 中的当前 ggplot 实现来执行此操作。所以我想知道我是否可以使用函数将数据帧传递给包含 R 代码的单元格并可能返回它。这是我的想法:
#cell 1
def plot_in_r(dataframe):
pass_to_cell_2(dataframe)
#cell 2
%%R -i dataframe
ggplot(dataframe) + geom_bar()
它不一定是一个单元格到另一个单元格,但我需要将一些东西传递给 R 并通过我可以重复使用的函数让它在笔记本中绘制。
我想最简单的方法是在 R
中定义一个函数,它接受一个数据框并包含绘图逻辑。
必要的进口:
import rpy2
import pandas as pd
%load_ext rpy2.ipython
%R require("ggplot2")
正在创建虚拟数据框:
df1 = pd.DataFrame({"A": [1, 2, 3], "B": [1, 2, 3]})
df2 = pd.DataFrame({"A": [3, 2, 1], "B": [1, 2, 3]})
编写绘图函数:
%%R
plot_gg <- function(df) {
p <- ggplot(data=df) + geom_line(aes(x=A, y=B))
print(p)
}
最后只用两行代码绘制:
for df in df1, df2:
%Rpush df
%R plot_gg(df)