提问人:Matt Toland 提问时间:10/30/2023 最后编辑:Matt Toland 更新时间:10/30/2023 访问量:31
在 Plotly Dash 应用程序代码中使用时出现 rpy2rpy 转换错误
rpy2 py2rpy conversion error when used inside Plotly Dash App Code
问:
我正在尝试在 python 中构建一个简单的 plotly dash 应用程序,它使用 R 脚本生成图表的图像并将其显示在应用程序中。我正在使用 py2rpy 将 pandas 数据转换为 R 数据,然后再传递给我的 R 脚本以生成图表。这适用于在情节紧凑的破折号脚本之外找到,但不在其中,而是根据我使用的代码版本抛出错误:
NotImplementedError:未为类型为“<类”str“>的对象定义转换”py2rpy”
NotImplementedError: 似乎缺少转换规则。那些 规则位于 Python 上下文中vars。上下文变量。这可能是由于 通过多线程代码不将上下文传递到线程。
rpy2.robjects
官方代码:
@callback(
Output('figure-1-graph-controls', "figure"),
Input('figure-1-drop-down-selection', "value"),
Input('figure-2-drop-down-selection', "value"),
)
def update_figure1(col_chosen1, col_chosen2):
subset = df[(df['col1']==col_chosen1) & (df['col2']==col_chosen2)]
r_data = ro.conversion.py2rpy(subset)
r_set = r_function(r_data)
converted = ggplot2.ggplot2_conversion(r_set)
png_image = image_png(converted)
return png_image
我尝试在 Dash/Plotly 绘图函数中添加 r 上下文,如下所示:
ro.r['source']('Chart.R')
r_function = ro.globalenv['generate_chart']
pandas2ri.activate()
with localconverter(ro.default_converter + pandas2ri.converter):
r_data = ro.conversion.py2rpy(subset)
r_set = r_function(r_data)
converted = ggplot2.ggplot2_conversion(r_set)
两者都可以在破折号应用程序代码之外工作,但在内部使用时则不然。我还尝试使用函数调用py2rpy转换,但出现了同样的问题。
答: 暂无答案
评论