你好,
附件是包含 3 列的 table1.jmp,我将使用它来绘制图表。Table2 是包含参考线信息的表格。附件中还包含我正在尝试完成的 output_chart.png。是否可以编写 jsl 来绘制图表并输入不同产品不同的参考线信息。我也不介意使用任何其他方式来绘制图表。任何帮助都将不胜感激!
如果您使用的是JMP18 ,这是您可以尝试的另一种方法。
Names Default To Here(1);
dt1 = Open("$DOWNLOADS/table1.jmp");
dt2 = Open("$DOWNLOADS/table2.jmp");
gb = dt1 << Graph Builder(
Size(1162, 468),
Show Control Panel(0),
Link Page Axes("Y Only"),
// Replicate Linked Page Axes(0), // would show Y-axis only once
Variables(X(:Date), Y(:Yield), Page(:Product, Levels per Row(3), Show Title(0))),
Elements(Points(X, Y, Legend(4)), Smoother(X, Y, Legend(5)))
);
// get PM list
Summarize(dt1, pms = By(:Product));
// Each X-Group will have its own framebox
// NOTE We assume that PM order is the default one
all_axis = Report(gb) << XPath("//AxisBox");
abs = all_axis[1::N Items(all_axis)::2];
For Each({cur_pm, idx}, pms,
cur_ab = abs[idx];
// Loop over line specifications and set lines
pm_spec_rows = dt2 << get rows where(:Product == cur_pm);
For Each({spec_row}, pm_spec_rows,
val = dt2[spec_row, "Design Change Dates"];
name = dt2[spec_row, "Design Name"];
cur_ab << Add Ref Line(val, "Solid", "Red", name, 1);
);
);
在使用 Page 时,它采用了新的“网格”样式。这允许我们为每个组设置单独的 X 轴。

如果您更改“复制链接页面坐标轴”设置,也可以只显示一次 Y 轴。

由于我不擅长编写脚本,所以我尝试了另一种方法。在附件中,我在表 2 中创建了一个名为“新产品”的列,然后使用“产品”作为键连接了两个表。从图表生成器保存的图表根据设计名称对点进行着色,在 X 轴分组字段中使用了“产品”,并将“日期”和“设计变更日期”都选为 X 轴变量,将“产量”选为 Y 轴变量。我调整了标记的大小。我认为还可以做更多工作来改进显示效果(至少应该将 PM3 移到右侧,因为它没有设计变更)。