如何在R脚本中用reticulate调用pandas绘制散点图?
如何用reticulate在R脚本中调用pandas绘制散点图?
原Python实现代码
import pandas as pd data = {'col1': [1,2,3,4,5], 'col2': [6,7,8,9,10]} df = pd.DataFrame(data) df.plot.scatter(x='col1', y='col2', alpha=0.3)
已完成的部分R代码
library(reticulate) pd <- reticulate::import('pandas') df <- data.frame(col1=c(1,2,3,4,5), col2=c(6,7,8,9,19)) # 如何用reticulate复刻 df.plot.scatter(x='col1', y='col2', alpha=0.3)?
解决方案
要实现需求,核心是将R的data.frame转换为pandas的DataFrame对象(pandas绘图方法仅支持自身数据结构),同时因为pandas绘图依赖matplotlib,纯R脚本中需要手动触发图像显示。完整代码如下:
library(reticulate) # 导入pandas和matplotlib.pyplot pd <- import('pandas') plt <- import('matplotlib.pyplot') # 创建R数据框 df_r <- data.frame(col1=c(1,2,3,4,5), col2=c(6,7,8,9,19)) # 转换为pandas DataFrame df_pd <- pd$DataFrame(df_r) # 调用pandas散点图绘制方法 df_pd$plot$scatter(x='col1', y='col2', alpha=0.3) # 手动触发图像显示(纯R脚本必须添加此步骤) plt$show()
关键说明
- 格式转换:reticulate支持R与Python对象的自动转换,
pd$DataFrame(df_r)可将R数据框转为pandas的DataFrame。 - 语法对应:用R的
$替代Python的.,实现链式调用,对应Python的df.plot.scatter(),R中写为df_pd$plot$scatter()。 - 图像触发:纯R脚本环境下,pandas绘图不会自动弹出图像,需调用matplotlib的
plt$show()完成显示。
内容的提问来源于stack exchange,提问作者Basil
相关产品推荐
相关产品推荐

