【发布时间】:2021-06-30 13:42:25
【问题描述】:
naniar 是用于可视化缺失数据的通用 R 包。我正在尝试使用rpy2 在naniar 中调用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 中出现的所需输出?
我可以在这里使用matplotlib 或ggplot2 吗?
【问题讨论】:
-
这可能是由于 Jupyter notebook 的 Python 内核中 R 绘图的交互性(与 Python 脚本中的
rpy2相同)。而不是实际的情节,你得到底层的 ggplot 数据转储。考虑将绘图保存到图像文件并在后续单元格中呈现。或者运行一个 R 内核。 -
嗨@Parfait,在这种情况下如何保存为图像?
标签: python r matplotlib ggplot2 rpy2