我经常发现自己尝试使用 Graph Builder 制作“被子”图(见附件),但我能找到的唯一方法是在点图中制作非常大的方形标记点,然后尝试调整绘图窗口的大小完美并希望它不会在此过程中重置标记设置。
有没有更好的方法来制作这样的情节?
以下是 UI 步骤的屏幕截图:
- 拖是到 Y 是和X到 Graphbuilder 的 X 区域。 仅出现点簇。
- 右击进入z并选择公式,出现标题为 Transform[z] 的公式窗口。
- 在左侧,我打开了功能选项统计并捕获了悬停帮助列总和() .
- 阅读语法,ratget 列(变量)是第一个参数,每个后续参数都是一个 Byvar。 因此,在选择 Col Sum() 后,单击 teh 框区域,然后按逗号,下一个字段/bvox 将出现,选择 X。 确保 x 框突出显示并按逗号,然后单击 y。
- 该公式现在有 Col Sum( z, x, y ) 见第二张图。 按确定
- 下一拖变换[ z ]到颜色区域。 右键单击点并更改为热图。
- 选择“标签”、“按值标注”并双击图例并选择图例的配色方案。
这一切都可以通过 UI 完成。当然地图区域也可以工作。


@B哈里斯,
您询问当每个块有多个颜色值(多个 z 值)时使用哪个统计信息。
如您所料,默认情况下使用均值。 但是,您可以使用您喜欢的任何统计数据,但有一种方法可以做到这一点。在 JMP 中,当系统提示您将列转换为角色时,您可以右键单击列并指定转换、聚合、公式等等。
附上表格,每个色块有3个值,即unique xy组合。 拖动前z到颜色区域,右键单击z并指定公式,然后选择列总和 ( :z, :x, :y) .该公式为每个xy堵塞。 所以你可以创建你喜欢的任何转换。
该表包括如下所示的脚本。
Graph Builder(
Variables(
X( :x ),
Y( :y ),
Color( Transform Column( "Sum[z]", Formula( Col Sum( :z, :x, :y ) ) ) )
),
Elements( Heatmap( X, Y, Legend( 21 ), Label( "Label by Value" ) ) ),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
21,
Properties(
0,
{gradient( {Color Theme( "White to Blue" )} )},
Item ID( "Sum[z]", 1 )
),
Properties(
-1,
{gradient( {Color Theme( "White to Blue" )} )},
Item ID( "z", 1 )
)
)}
)
)
)糟糕,我忘了补充,我将 Z 指定为 Ordinal,只是为了显示一个单独的配色方案。 它也可以是连续的。
@B哈里斯,
Z 可以指定为颜色。 我把2改成了-2,看下面的截图。

这花了我一段时间才弄清楚它在做什么……所以“Freq”框使用变量“z”来指示组合(例如 green/b)出现“多少次”? 那么传说告诉你那算不算?
另外,我说频率在这里不能为负是对的吗?
@B哈里斯,
吉姆, @txnelson ,为您提供了解决方案。 另一种选择是将点更改为热图。
使用此选项,您对颜色的控制较少;不需要地图形状。
Graph Builder(
Variables( X( :x ), Y( :y ), Frequency( :z ) ),
Elements( Heatmap( X, Y, Legend( 10 ) ) )
);

以下是有关如何使用图形生成器和形状图执行此操作的一些想法。我附上了 -xy 和 -name 文件,以及用于填充地图的数据文件的两个数据版本。您需要学习使用自定义地图,但这并不困难。

