排列未知数量的图表你好,
我有 4 列:X、Y、A、B。
X 和 Y 是数字,A 和 B 是字符。
我想创建多个 X 与 Y 图表(按 A 和 B),但它们的排列方式与我默认得到的不同。
我默认得到的是一长列中的所有图表。
我想要得到的是 A 的行和 B 的列(一种矩阵)。
问题是,对于每个 A,都有不同数量的 B。
例如,对于 A=176,有 B=1...10,但对于 A=177,有 B=1...11。
所以我想要的是第一行的所有 A=176 图表,以及第二行的所有 A=177。
我想我的解释不是很好,所以请看我得到的和我想要的两个附加图像。
当然我想知道如何使用 JSL 代码来获得它。
任何帮助将不胜感激。
谢谢!
脚本回复:排列未知数量的图表我什至没有考虑过图形生成器,但它实际上在这里工作得很好。
谢谢!
回复:排列未知数量的图表这正是我一直在寻找的。 谢谢!
如果 B 也是数字,代码会有所不同吗? 例如,在 Big Class 中,B 将是 Age,因此它可以是数字和字符。
我问是因为当 B 是一个字符时,它按以下顺序排列图表:1,10,11,2,3...
而当 B 为数字时,则将其排列为 1,2,3...10,11(此处更适合)。
谢谢!
回复:排列未知数量的图表这是我将如何做到的。我在 JSL 中做的一项不是必需的,但使显示看起来更好。我使用 Substitute 函数使 Where 子句更具可读性。

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << set name( "Example" );
dt:age << set name( "B" ) << data type( character );
dt:sex << set name( "A" );
dt << delete columns( "name" );
Summarize( dt, aList = by( :A ) );
Summarize( dt, bList = by( :B ) );
NW = New Window( "Matrix OutPut", vlb = V List Box() );
For( i = 1, i <= N Items( aList ), i++,
hlb = H List Box();
For( k = 1, k <= N Items( bList ), k++,
If( N Rows( dt << get rows where( :A == alist[i] & :B == bList[k] ) ) > 0,
hlb << append(
V List Box(
Eval(
Substitute(
Expr(
biv = Bivariate(
Y( :height ),
X( :weight ),
Where( :A == __aList__ & :B == __bList__ )
)
),
Expr( __aList__ ), aList[i],
Expr( __bList__ ), bList[k]
)
)
)
)
)
);
vlb << append( hlb );
);回复:排列未知数量的图表嗨尤塔姆,
对于 Graph Builder 来说,这似乎是一项完美的工作:
1) 将您的 X 列拖到 X 轴框
2) 将 Y 列拖到 Y 轴框
3) 将 A 列拖到 X 组框
4) 将 B 列拖到 Y 组框
让我知道这对你有用。
最好的,
TS