在圖形產生器中建立具有不同總計統計資料的重複熱圖給定 Big Class 和這個情節:
Graph Builder(
Size( 574, 613 ),
Graph Spacing( 20 ),
Variables(
X( :sex ),
X( :sex ),
Y( :age ),
Color( :height, Summary Statistic( "Min" ) )
),
Elements( Position( 1, 1 ), Heatmap( X, Y, Legend( 4 ) ) ),
Elements( Position( 2, 1 ), Heatmap( X, Y, Legend( 5 ) ) )
)
有沒有辦法讓左圖使用「Mean」總結統計量,右圖使用「Min」?
我嘗試添加另一個 Color() 規範,但它似乎在 JMP 17 中不起作用。
數據探索和視覺化回覆:在圖形產生器中建立具有不同總計統計資料的重複熱圖我所做的是
- 使用 Tables=>Summary 建立一個新表,其中包含按性別和年齡分組的平均值和最小值統計數據
- 使用 Tables=>Stack 堆疊平均值和最小值列
- 運行圖形生成器

names default to here(1);
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Big Class.jmp" );
// Data table summary
// → Data Table( "Summary of Big Class grouped by age, sex" )
Data Table( "Big Class" ) << Summary(
Group( :age, :sex ),
Mean( :height ),
Min( :height ),
Freq( "None" ),
Weight( "None" ),
statistics column name format( "stat" ),
output table name( "Summary of Big Class grouped by age, sex" )
);
// Stack data table
// → Data Table( "Stack of Summary of Big Class grouped by age, sex (Mean, Min)" )
Data Table( "Summary of Big Class grouped by age, sex" ) <<
Stack(
columns( :Mean, :Min ),
Output Table( "Stack of Summary of Big Class grouped by age, sex (Mean, Min)" )
);
Graph Builder(
X Group Edge( "Bottom" ),
Variables( X( :sex ), Y( :age ), Group X( :Label ), Color( :Data ) ),
Elements( Heatmap( X, Y, Legend( 4 ) ) )
);
回覆:在圖形產生器中建立具有不同總計統計資料的重複熱圖另一種選擇是建立兩個圖形生成器報告並將它們並排放置在自訂報告新視窗中。您可能需要重新命名圖表,以便清楚顯示最小值和最大值的顏色。這是一個簡單的例子:
names default to here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
hm1 = expr( dt << Graph Builder(
Size( 235, 613 ),
Show Control Panel( 0 ),
Variables(
X( :sex ),
Y( :age ),
Color( :height, Summary Statistic( "Min" ) )
),
Elements( Heatmap( X, Y, Legend( 1 ) ) ),
));
hm2 = expr( dt << Graph Builder(
Size( 235, 613 ),
Show Control Panel( 0 ),
Variables(
X( :sex ),
Y( :age ),
Color( :height, Summary Statistic( "Max" ) )
),
Elements( Heatmap( X, Y, Legend( 1 ) ) ),
));
new window( "Two Heat Maps",
h list box( hm1, hm2 )
);
回覆:在圖形產生器中建立具有不同總計統計資料的重複熱圖冒著過度設計此解決方案的風險,您可以將其概括為統計資料清單。
names default to here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
statList = { "Mean", "Median", "Mode", "Min", "Max", "Range", "Median", "Std Dev" };
hm_fxn = function( { STAT },
dt << Graph Builder(
Size( 200, 300 ), // Adjust size based on number of heatmaps
Show Control Panel( 0 ),
Variables(
X( :sex ),
Y( :age ),
Color( :height, Summary Statistic( STAT ) )
),
Elements( Heatmap( X, Y, Legend( 1 ) ) ),
SendToReport(
Dispatch( {}, "Graph Builder", OutlineBox,
{Set Title( "Color by " || STAT ), Image Export Display( Normal )}
)
)
)
);
new window( "Heat Maps",
outline box( dt << get name || " Heat Maps",
lub = line up box( n col( 4 ) ) // Adjust n col() for number of heatmaps per row
)
);
for each( { s }, statList,
lub << append( hm_fxn( s ) )
)

回覆:在圖形產生器中建立具有不同總計統計資料的重複熱圖
@BHarris寫道:我嘗試添加另一個 Color() 規範,但它似乎在 JMP 17 中不起作用。
-> 增加另一種顏色
適用於 JMP 17 (.2)

dt = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
Graph Builder(
Size( 574, 613 ),
Summary Statistic( "Median" ),
Graph Spacing( 20 ),
Variables(
X( :sex ),
X( :sex ),
Y( :age ),
Color( :height, Summary Statistic( "N" ) ),
Color( :height, Summary Statistic( "Max" ) )
),
Elements( Position( 1, 1 ), Heatmap( X, Y, Color( 1 ), Legend( 4 ) ) ),
Elements( Position( 2, 1 ), Heatmap( X, Y, Color( 2 ), Legend( 5 ) ) )
);
回覆:在圖形產生器中建立具有不同總計統計資料的重複熱圖太棒了,成功了!我認為添加顏色規格時缺少額外的 X 變數。如果 GB 透過 UI 支援這一點,那就太好了,但它已經做了這麼多...
這是我正在尋找的最終腳本:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Graph Builder(
Size( 934, 824 ),
Show Title( 1 ),
Graph Spacing( 20 ),
Variables(
X( :sex ),
X( :sex ),
X( :sex ),
Y( :age ),
Color( :height, Summary Statistic( "Min" ) ),
Color( :height, Summary Statistic( "Mean" ) ),
Color( :height, Summary Statistic( "Max" ) )
),
Elements(
Position( 1, 1 ),
Heatmap( X, Y, Color( 1 ), Legend( 1 ), Label( "Label by Value" ) )
),
Elements(
Position( 2, 1 ),
Heatmap( X, Y, Color( 2 ), Legend( 2 ), Label( "Label by Value" ) )
),
Elements(
Position( 3, 1 ),
Heatmap( X, Y, Color( 3 ), Legend( 3 ), Label( "Label by Value" ) )
),
SendToReport(
Dispatch(
{},
"graph title",
TextEditBox,
{Set Text( "Age vs. Sex, Colored on Height -- Min, Mean, Max" )}
),
Dispatch(
{},
"400",
LegendBox,
{Legend Position( {1, [0], 2, [-1], 3, [-1]} )}
)
)
)