<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />嗨,
有没有办法在热图显示中渲染更复杂的东西,比如字形。
字形将位于相应的单元格中,并允许同时查看更多值。
我正在考虑一个内外矩形字形,例如这里(最左边部分)
https://www.ukp.tu-darmstadt.de/fileadmin/user_upload/Group_UKP/Visualization/Vis-Streifen.png
谢谢迈克尔
我认为这是不可能的,因为Graph Builder只能有一个颜色变量并且没有覆盖热图,但后来我尝试将方形标记与热图结合起来,它创造了所需的效果。我不确定它是否在感知上有效,但您可以尝试使用不同的尺寸/标记组合来查看是否可以传达您的信息。
主要技巧是为行指定颜色(使用Rows> Color或Mark by Column)并告诉Graph Builder中的Points元素忽略颜色角色中的变量(Properties> Points> Variables> untick C2),这样只有热量map元素使用它。下面的脚本。

New Table( "double heat",
New Column( "X1", Nominal, Set Values( Mod( 0 :: 59, 6 ) + 1 ) ),
New Column( "X2", Nominal, Set Values( Floor( (0 :: 59) / 6 ) + 1 ) ),
New Column( "S1", Formula( Random Uniform() ) ),
New Column( "C1", Formula( Random Uniform() ) ),
New Column( "C2", Formula( :C1 + Random Normal() / 5 ) )
);
Current Data Table() << Run Formulas();
// change the rows to use square markers (could be anything)
For Each Row( Row State( Row() ) = Marker State( "Filled Square" ) );
// Color each row marker based on column C1
Current Data Table() << Color by Column( :C1, Color Theme( "Blue to Gray to Red" ) );
Graph Builder(
Size( 257, 422 ), Show Control Panel( 0 ),
Variables( X( :X1 ), Y( :X2 ), Color( :C2 ), Size( :S1 ) ),
Elements(
Heatmap( X, Y, Legend( 13 ) ),
Points( X, Y, Color( 0 ), Legend( 12 ) )
),
SendToReport( Dispatch( {}, "400", ScaleBox,
{Legend Model( 12, Properties( 0, {Marker Size( 6 )} ) )}
) )
)