【问题标题】:ipython notebook R cell magic as a python functionipython notebook R cell 魔法作为python函数
【发布时间】:2015-02-27 22:32:36
【问题描述】:

我有一些 %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 ipython ipython-notebook rpy2


    【解决方案1】:

    我想最简单的方法是在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)
    

    【讨论】:

      猜你喜欢
      • 2016-05-19
      • 1970-01-01
      • 1970-01-01
      • 2013-04-23
      • 2015-04-05
      • 2020-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多