来自多个变量的热图叠加我收集了来自 MxN 传感器的响应。数据以表格形式呈现,其中包含多个变量,分别存储在 ParamA、ParamB 和 ParamC 三个列中。
TLDR:我想获得下面草图右侧的两个热图。

在第一个应用程序中,我想绘制由两个逻辑变量叠加而成的热图,即 ParamA=1 为蓝色,ParamB=1 为红色,ParamA=1&ParamB=1 为洋红色。
在第二个应用程序中,我想将连续变量 ParamC(作为填充颜色)的热图与逻辑变量 ParamA(作为填充模式)的热图叠加。
我希望避免为这些地图单独计算一列,因为实际数据包含数十个变量,会导致排列组合过多。理想情况下,我希望使用 Graph Builder 的解决方案,无需编写脚本。
我使用 JMP 18.1.1。
数据探索与可视化回复:来自多个变量的热图叠加我相信您有两个选择,一个是在数据表操作中创建数据,然后使用 Graph Builder 显示,另一个是在 Graph box() 中使用 JSL 的图形函数构建您自己的显示,以创建您需要的结果。
回复:来自多个变量的热图叠加我的建议是在 Graph Builder 窗口中叠加两个热图。
选择您想要着色的两列,然后将它们拖到颜色角色中。例如:

接下来,在热图图表的任意位置右键点击,然后选择“添加”>“热图”。现在您有两个重复的热图,每个热图的颜色角色中都包含两个参数。在“变量”下,取消选中每个热图颜色分配中的一个参数,这样每个热图就仅根据该参数着色。例如:

最后,根据需要更改每个参数的颜色或图案编码。请注意,此列表底部的热图将位于图形顶部。(注:如果没有脚本,我认为只能叠加 2 个参数 - 但如果您编辑脚本,则可以添加所有 3 个参数,并推广此方法以叠加两个以上的热图。)
以下是示例 1 的脚本:
查看更多...
Graph Builder(
Size( 518, 448 ),
Show Control Panel( 0 ),
Variables( X( :col ), Y( :row ), Color( :ParamA ), Color( :ParamB ) ),
Elements(
Heatmap( X, Y, Color( 2 ), Legend( 5 ) ),
Heatmap( X, Y, Color( 1 ), Legend( 6 ) )
),
SendToReport(
Dispatch( {}, "400", ScaleBox,
{Legend Model(
5,
Properties( 0, {Transparency( 0 )}, Item ID( "0", 1 ) ),
Properties( 1, {Transparency( 0.5 )}, Item ID( "1", 1 ) )
), Legend Model(
6,
Properties( 0, {Transparency( 0 )}, Item ID( "0", 1 ) ),
Properties( 1, {Transparency( 0.5 )}, Item ID( "1", 1 ) )
)}
)
)
);
以下是示例 2 的脚本:
查看更多...
Graph Builder(
Size( 518, 448 ),
Show Control Panel( 0 ),
Variables( X( :col ), Y( :row ), Color( :ParamC ), Color( :ParamA ) ),
Elements(
Heatmap( X, Y, Color( 1 ), Legend( 14 ) ),
Heatmap( X, Y, Color( 2 ), Legend( 15 ) )
),
SendToReport(
Dispatch( {}, "400", ScaleBox,
{Legend Model(
15,
Properties( 0, {Transparency( 0 )}, Item ID( "0", 1 ) ),
Properties(
1,
{Fill Color( 0 ), Fill Pattern( "triangle up" )},
Item ID( "1", 1 )
),
Properties(
-1,
{Fill Color( 0 ), Fill Pattern( "triangle left" )},
Item ID( "-1", 1 )
)
)}
)
)
);
回复:来自多个变量的热图叠加您可以考虑将热图与点图结合起来。
然后数据就可以在人眼中被处理了——并且可以减少通过人脑的协同处理。
回复:来自多个变量的热图叠加你好, christian-z,谢谢你,这正是我要找的!
对于第一个应用程序,我能够在图例设置中启用它们的条目后对两个参数应用不同的颜色(图形生成器默认隐藏了第二个参数的图例条目,可能是因为 ParamA 和 ParamB 都只采用相同的值 0 和 1):

对于第二个应用程序,它很简单,有两个图例:

回复:来自多个变量的热图叠加你好呀,
对于应用程序 #2 来说,这也是一个有趣的解决方案。我只需要确保 ParamA 标记的颜色始终在 ParamC 颜色范围的上方可见:
