在 python notebook 中使用 R 函数可视化缺失数据

Using a R function in python notebook to visualize missing data

naniar 是一个常用的 R 包,用于可视化缺失数据。我正在尝试使用 rpy2naniar 中调用 R 函数 vis_miss() 来绘制丢失的数据。

Python 给我一个数据框作为输出,而不是笔记本中的绘图,我想解决这个问题。这个想法是在 python 笔记本中使用 vis_miss 包。

下面是一个使用 iris 数据集的工作示例:

# install rpy2 to run R in python
!pip3 install rpy2

%load_ext rpy2.ipython


from sklearn.datasets import load_iris

%R install.packages("naniar")
%R library(naniar)
%R library(ggplot2)


# Load Iris data
iris = load_iris()


# Run vis_miss function, expecting to see a graph showing missing data
%R naniar::vis_miss(iris)

我的输出现在应该是缺失数据的图像,但我得到的是:

ListVector with 10 elements.
data    R/rpy2 DataFrame (750 x 4)
rows    variable    valueType   value
... ... ... ...
layers  ListVector with 1 elements.
[no name]   [RTYPES.ENVSXP]
scales  add: function clone: function find: function get_scales: function has_scale: function input: function n: function non_position_scales: function scales: list super:
... ...
plot_env    
labels  ListVector with 4 elements.
x   [RTYPES.STRSXP]
y   [RTYPES.STRSXP]
text    [RTYPES.STRSXP]
fill    [RTYPES.STRSXP]
guides  ListVector with 1 elements.
fill    [RTYPES.VECSXP]

如何在此 python 笔记本的单元格内获得 R 中出现的所需输出?

我可以在这里使用 matplotlibggplot2 吗?

使用 cell magic (%%R) 获取图像输出:

%%R
naniar::vis_miss(iris)

单元格魔法还允许自定义 width/height/dpi 和格式,请参阅:IPython magic integration