图形生成器动态添加 p 值:推荐的工作流程JMP 社区您好,
我经常需要用分析结果(例如 p 值、估计值)来注释图形生成器图(~200)。到目前为止,我主要依赖手动注释,但我开始厌倦这种方法。我知道如何通过脚本动态添加文本,但我还没有找到解决我的具体问题的好方法(见下文)
在以下情况下,您推荐的工作流程是什么:
图形数据:包含 Y 值的约 200 列(约 1,000 行); X 数据定义在 1 列中,叠加数据在 1 列中,生成 200 个图
分析结果:每个 Y 值 1 行,列包含 p 值、估计值和其他可能的分析输出。
注意:自动化一直具有挑战性,因为批次之间的初始数据总是略有不同。
我的主要问题是图形数据和分析结果表是正交组织的(列中的 Y 与行中的 Y),这需要转置结果表,按分析输出(p 值、估计值等)拆分结果表并将结果表连接到图表。这似乎不是很有效,因此欢迎任何建议。
谢谢。
TS
质量和工艺工程分享和交流结果回复:Graph Builder动态添加p值:建议的工作流程通常,JMP使重新整理数据变得容易,并且“低效”是一个相对术语。如果我理解正确,您想将一个(分析)平台的结果添加到另一个(图形)平台的结果中。最佳的工作流程将取决于细节。
下面的脚本根据您在上面所说的内容生成一些随机数据。如果您可以运行它,然后发布脚本,该脚本将重现您选择的两个平台的结果,那么人们将能够更好地提出更具体的建议。
NamesDefaultToHere(1);
// Make a data table
nr = 1000;
y = J(nr, 200, RandomNormal());
x = J(nr, 1, RandomUniform(1, 10));
o = J(nr, 1, RandomInteger(1, 6));
dt = AsTable(x||o||y);
dt << setName("Test");
Column(dt, 1) << setName("X");
Column(dt, 2) << setName("Overlay");回复:Graph Builder动态添加p值:建议的工作流程查找附加的3个文件:
- 用脚本生成的输入数据表(稍作修改)
- OUTPUT表的例子
- PLOTS日记的示例
感谢您调查此事。
最好的祝福,
TS
回复:Graph Builder动态添加p值:建议的工作流程我敢肯定,每个人都会略有不同。但是,如果上面的两个表是您的起点,那么我将执行以下操作:
NamesDefaultToHere(1);
// Data tables
data = DataTable("Test WORKFLOW.jmp");
stats = DataTable("Test WORKFLOW RESULT TABLE.jmp");
// Template expression for Graph Builder with text annotation
gbExpr =
Expr(
data << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :X ), Y( yTBD ), Overlay( :Overlay ) ),
Elements(Line(X, Y, Legend( 12 ), Error Interval( "None" ))),
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
{Add Graphics Script( 2, Description( "Annotation" ), Text( {8, 0}, "interaction P Val: "||Char(Round(pValTBD, 3))))}
)
)
)
);
// Loop over 'Y' variables
lub = LineUpBox(NCol(1));
for(c=3, c<=NCol(data), c++,
yCol = Column(data, c);
pVal = Column(stats, 2)[c-2];
lub << append(Eval(Substitute(NameExpr(gbExpr), Expr(yTBD), yCol, Expr(pValTBD), pVal)));
);
// Reports in a Journal
nw = NewWindow("Report", <<JOURNAL></JOURNAL>
您应该能够制定出适合您情况的轮廓。您也可以尝试包含一些逻辑,以将注释放置在“更好”的位置。如果不确定其工作原理,请参阅“帮助>脚本指南”和JSL书。