☑ 很酷的新功能
可以帮助很多用户!
删除一个“bug”
很高兴拥有
无人需要它
是什么激发了这个愿望清单请求?
GraphBuilder 中的摘要统计非常方便,它们会自动对数据过滤器的变化做出反应,并且计算值尊重 x 轴上的数据点分组、X/Y 组、换行、覆盖和页面。
不幸的是,摘要统计仅适用于点图、线图、条形图和热图,但不适用于平行图或更平滑的图。
这就是为什么有时不可能通过图形生成器的自动方式获得更平滑且对齐的点/线图,就像在这个图中一样图形生成器:平滑的汇总统计数据

为了解决这个问题,人们必须通过一个“手动”进行聚合变换列。
用户添加转换列而不是使用图形生成器的摘要统计有更多原因。
- 通过摘要统计提供的聚合选项数量有限(将 CDF 添加到图形生成器,等级也缺失)
- 用户必须调整统计数据(将更频繁地使用,一旦新的 JSL 功能:Col N 类别可用)。
变换列的问题:它们要少得多灵活的比汇总统计:
- 它们忽略 x/y 轴、X/Y 组、换行、覆盖和页面上数据点的分布。
- 他们忽略本地数据过滤器
查看更多...Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt << Graph Builder(
Transform Column( "Mean[weight]", Formula( Col Mean( :weight ) ) ),
Size( 480, 463 ),
Show Control Panel( 0 ),
Set α Level( 0.01 ),
Summary Statistic( "Median" ),
Graph Spacing( 4 ),
Variables(
X( :age ),
Y( :"Mean[weight]"n ),
Y( :weight, Position( 1 ) ),
Group Y( :sex ),
Overlay( :sex )
),
Elements(
Points( X, Y( 2 ), Legend( 1 ), Summary Statistic( "Mean" ) ),
Points( X, Y( 1 ), Legend( 3 ), Jitter( "None" ) )
),
Local Data Filter(
Add Filter(
columns( :name ),
Where(
:name == {"ALFRED", "ALICE", "AMY", "BARBARA", "CAROL",
"CHRIS", "CLAY", "DANNY", "DAVID", "EDWARD", "ELIZABETH",
"FREDERICK", "JACLYN", "JAMES", "JANE", "JEFFREY", "JOE",
"JOHN", "JUDY", "KIRK", "LAWRENCE", "LESLIE", "LILLIE",
"LINDA", "MARION", "MARK", "MARY", "MICHAEL", "PHILLIP",
"ROBERT", "SUSAN", "WILLIAM"}
),
Display( :name, N Items( 15 ), Find( Set Text( "" ) ) )
)
),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
3,
Base( 0, 0, 0, Item ID( "F", 1 ) ),
Base( 1, 0, 0, Item ID( "M", 1 ) ),
Properties(
0,
{Marker( "Triangle" ), Marker Size( 3 )},
Item ID( "F", 1 )
),
Properties(
1,
{Marker( "Triangle" ), Marker Size( 3 )},
Item ID( "M", 1 )
)
)}
)
)
) 实心点:通过汇总统计平均值 -> 不同年龄、性别的不同值 + 尊重本地数据过滤器
空心三角形:通过变换列表示平均值 -> 所有值都相同,LDF 被忽略

有人可能会争论:三角形准确地显示了变换列被告知要计算的内容。 不用担心。
是的,当然......如果没有汇总统计数据的话!
摘要统计数据执行相同的任务:“平均值(重量)” - 并显示完全不同的值。
您希望看到什么改进?
对于图形生成器(和其他平台 - 如摘要!!!)中的转换列,请添加一个选项以尊重本地数据过滤器(选项: LDF子集)。
“尊重数据点在 x/y 轴、X/Y 组、页面等上的分布”的问题。可以非常容易地修复 - 只需添加相应的列作为列聚合的参数。
但是,随着图表的每次更改,用户都必须非常仔细地检查 JSL 代码中是否包含所有必需的列。
更简单:一个选项告诉转换列分割数据,类似于摘要统计所做的事情(X 轴上不同值的各个子集、X/Y 组、页面...)。 我称之为“图表项目”。 (舒适模式 - 我确信有一个词可以更准确地描述它:)
替代选项:
如果在 GraphBuilder 的转换列中使用列聚合,它应该接受 allPlotGroups、X、X(1)、X(5)、Group X、GroupX(1)、Overlay、Page 等参数。
Col Number(:height, :sex, "Page") // if a column is used as page, please calculate individual values for the data points on different pages
Col Number(:height, :sex, "GroupY") // if a column is used as GroupY, please calculate individual values for the data points on different GroupsY
Col Number(:height, :sex, "X(1)") // please calculate individual values for different values of the column which is used as X(1)
Col Number(:height, "allPlotGroups") // please calculate individual values for different values of the column which is used as X, GroupX, GroupY, Wrap, Page
Col Number(:height, "GroupX", "GroupY", "Wrap", "Page") // similar to the previous one, but no subgroups for "same X value"
上下文菜单中的“舒适模式”和作为列聚合参数的“allPlotGroups”提供与摘要统计相同的功能。
最后一个例子是我在使用汇总统计时长期以来所希望的:
当绘制数据与时间的关系图时,我可以使用批次号作为叠加,但如果批次被分成几天,它将显示为两个批次。
因此,这里的新功能将提供比 SummaryStatistics 更大的灵活性(!):灵活的方式指定数据的聚合方式:
- 只需按叠加分组(很多)
- 不要按 X(时间)分组 - 而是:随着时间的推移进行平均(通过另一个 Transfrom 列)

为什么这个想法很重要?
图形生成器很酷。
摘要统计数据非常有用...但是摘要统计数据的功能是有限的。
当回到公式列时,会出现问题,显示汇总统计数据是多么舒适。
对于数据过滤器的问题,有一个解决方法:转换列:排除行的错误
但它需要一些努力,并且对于具有多个数据过滤器的仪表板来说会变得更加复杂。
通过用于列聚合的新分组选项,转换列将比摘要统计更强大。
--> 借助新功能,用户可以像从摘要统计中习惯的那样舒适、灵活地使用转换列,而且没有任何限制。