You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R Submit File将R ggplot图形导入JMP时遇报错求助

解决JSL调用R脚本导入ggplot图形时的“Get data for "png" failed”错误

以下是针对问题的具体修复方案及代码调整:

核心问题分析与修复步骤

  • 变量大小写不匹配:JMP对变量名大小写敏感,原代码中JMP_plot和JMP_Plot大小写不一致,导致无法识别图形对象。
  • ggplot未显式渲染:ggplot默认不会自动输出图形,必须通过print()触发渲染,否则R不会生成可供JMP捕获的图形数据。
  • 路径转义错误:JSL中文件路径需用双反斜杠\\或正斜杠/,原路径的单斜杠会被解析为转义字符,导致R脚本无法被找到。
  • 等待时机错误:需在R脚本执行完成后、捕获图形前增加等待,确保图形生成完毕。

修改后的代码

JSL代码

LoadExprs = Expr(
    InitR = Expr(
        R Init();
    );

    RunR = Expr(
        // 修正路径转义格式
        R Submit File( "C:\\R_projects\\JMP\\R_JPM_integration_1.R" );
        // 增加等待时间,确保R完成图形渲染
        Wait(3);
    );
    
    CapturePlot = Expr(
        // 统一变量名大小写
        JMP_plot = R Get Graphics( png );
        New Window( "Imported Plot", Picture Box( JMP_plot ) );
    );
        
    RunClose = Expr(
        R Term(); // 关闭R连接
    );
);
LoadExprs;
InitR;
RunR;
CapturePlot;
RunClose;

R代码

library(ggplot2)
library(palmerpenguins)

# 定义ggplot对象
p <- ggplot(data = penguins, aes(x = bill_length_mm, y = flipper_length_mm, colour = species)) +
  geom_point() +
  facet_wrap(. ~ island, nrow = 3)

# 显式打印图形,触发R生成图形输出
print(p)

额外排查点

  1. 确认JMP的R环境配置正确:通过文件 > 首选项 > R检查R安装路径,点击“测试连接”验证连通性。
  2. 确保palmerpenguins包已安装:在R中执行install.packages("palmerpenguins")完成安装。

内容的提问来源于stack exchange,提问作者Paul van Oppen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 13:50:16