我目前正在为一家工厂的生产车间制作一个仪表板。一方面,我想在 3D 散点图中显示正在机身或飞机上钻孔的情况。另一方面,我想显示每次钻孔作业的开始时间,这基本上是一个散点图,纵轴上有一些类别,横轴上是连续时间。数据中有多个机身,因此第一步是选择一个。选择后,不可见的数据过滤器会隐藏并排除其他点。这基本上可以正常工作,但是我遇到了一个我不知道该如何解决的问题。
有多台机器进行钻孔。我想根据机器上加载的作业程序对所有点(3D 散点图和时间轴中的点)进行颜色编码。当我通过选择:作业 ID 作为颜色变量* 来执行此操作时,我注意到两个图表对每个:作业 ID 使用不同的颜色。当我在时间轴中选择例如红点时,3D 散点图中的蓝点会被选中。
How to make colors match between graphs?如何使图表之间的颜色匹配?
我想知道是否有办法同步/匹配两个图表上的颜色?欢迎提出任何想法。我完全不知所措。
另外,抱歉造成模糊,我不确定是否可以显示实际数字,只是为了安全起见。
谢谢!
*:来自图形生成器窗口的时间线图具有:
timeline = Graph Builder(
Size( 1300, 600 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables(
X( :Start Time Stamp ),
X( :Load Time Stamp, Position( 1 ) ),
Y( :Side ),
Y( :Longitudinal Location, Position( 1 ) ),
Y( :Machine, Position( 1 ) ),
Color( :Job ID )
),
Elements( Points( X( 1 ), X( 2 ), Y( 1 ), Y( 2 ), Y( 3 ) ) ),
),
三维散点图有:
scatter = Scatterplot 3D(
Y( :x, :y, :z ),
Coloring( :Job ID ),
Show Controls( 0 ),
Frame3D(
Set Graph Size( 500, 500 ),
Set Grab Handles( 0 ),
Set Rotation( -54, 0, 38 )
),
),我从上面的脚本中删除了一些用于删除图例、设置轴限值等的额外代码。它们会分散注意力。
txnelson 的想法非常简单和优雅。 我将值颜色添加到“作业 ID”列,然后在“行”菜单下使用“颜色或按列标记”。 颜色立即出现在 3D 散点图上。时间线图需要更多的努力来匹配颜色。 我在水平轴中使用了两个变量,图形生成器自动将颜色分配给点来自的列,并覆盖表中的行着色。 但是,一旦我在图形生成器中包含了 Color(:Job ID),所有颜色都完美匹配!
根据我从 vince_faller 的回复中了解到的信息,我现在可以轻松地将其转换为脚本。 他们都非常有帮助。
谢谢你们俩!
您可以使用
Names Default to Here(1);
dt = Open("$SAMPLE_DATA\Big Class.jmp");
//this will give you a legend
// the expression just makes it so it's live in both windows
legend = Expr(dt << Color By Column(:age));
//you have to make a custom report to show the proper legend
new window("Example",
Hlistbox(
bivariate(Y(:height), X(:weight),
Where(:age <= 14)
),
legend
),
Hlistbox(
bivariate(Y(:height), X(:weight),
Where(:age >= 13)
),
legend
)
);
至少这应该给你一个想法。
如果为 :Job ID 设置 Value Colors 列属性,ScatterPlot 3D 和 Graph Builder 都将使用这些颜色。