附加图形生成器功能:按降序排列叠加值是什么启发了这个愿望清单请求?请描述当前需要改进的问题或目前不容易或不可能解决的问题,并给出一个示例用例。
您好,我正在尝试为我的公司制作一些复杂的图表,但遇到了一个问题。我必须在十几个季度的跨度内显示多个类别的特定值(见下图)。我希望能够根据 y 轴上的值对堆叠条形图中的类别进行排序。在此示例中,我希望非失败类别位于堆叠底部,其次是应用程序类别,依此类推。
我知道我可以手动指定堆叠顺序,但这对我来说不够强大。我有本地数据过滤器,使用时会更改类别的值,然后需要再次手动重新堆叠它们。
我已经与我公司指派的 JMP 专家进行了交谈,他们告诉我,目前还没有内置此功能,这就是我写这篇文章的原因。

您希望看到什么改进?请描述改进 JMP 的想法。请提供模型、线框、屏幕截图、脚本、其他文档或其他软件的示例,以帮助描述您希望看到的更改。
就像您可以按照叠加值的降序/升序对条形图的 x 轴条进行排序一样(见下文)。我希望能够以相同的方式对叠加堆栈进行排序。

为什么这个想法很重要?如果该想法得以实施,请描述其对您和/或其他用户的价值(例如,易于使用、必须具备……)。
这似乎是图形生成器的必备功能。能够按照图形上显示的值对数据进行排序应该很容易,我想很多人都希望 JMP 具有此功能。
基础数据分析与建模回复:附加图形生成器功能:按降序排列覆盖值默认情况下,值似乎按照“行”顺序出现在条形图中。

要指定顺序,您可以使用列属性“值顺序”并强制 JMP 坚持该顺序。(这就是所谓的“手动”吗?)。
然后,值将在条形图中从下到上显示,并在图例中从上到下显示( 图例设置中的反向顺序按钮)
如果您想在Overlay中按“降序”排序,而在另一个地方按升序排序,只需通过列属性使用降序作为默认顺序。
然后 Overlay 将显示您想要的值。
其次,使用“排序顺序”并切换到“降序”(->降序 x 降序将为您提供升序)
或者:使用具有相反顺序的克隆列作为第二个位置。
回复:附加图形生成器功能:按降序排列叠加值 - 状态更改为:正在调查嗨! @hogi有一些好主意。另一个选择是使用 Graph Builder 中的配置级别。您只需设置您的图表,然后右键单击“覆盖”放置区域,您就会看到一个“配置级别...”选项。请尝试一下,并让我知道这是否满足您的要求。

回复:附加图形生成器功能:按降序排列覆盖值嘿@Sarah-Sylvestre 。我知道这个功能,但它对我不起作用。您可以根据表中的行条目数重新排序覆盖图,而不是根据 y 轴的值。例如,看下面的图片。我已突出显示内存类别。其值显示为 20,这意味着它有 20 行来自表格,用于图表。查看条形图,您可以看到 PPB 值远远超过 20。这就是问题出现的地方。我可能有一个仅调用一行但 PPB 值为 1000 的类别。我希望这能更好地解释这个问题。

回复:附加图形生成器功能:按降序排列覆盖值嘿@hogi ,谢谢你的回复。但是,对我的表格中的列进行排序也无济于事。我的本地数据过滤器正在过滤掉此图表的大量数据,因此我需要能够直接从图表中提取 PPB 值,以便我可以根据每个类别的总和配置我的叠加层。你不会碰巧知道如何做到这一点吧?
回复:附加图形生成器功能:按降序排列覆盖值好的,我想我现在明白了。
您想使用数据过滤器来动态选择某些子集。
然后,对于特定的子集,您需要按降序排列条形图中的条目 - 以重点关注顶部的主要贡献者。
嗯,“排序依据”有一个问题:您有 16 个季度的 PPB 信息,但只有一个排序设置。
应如何组合这 16 个数据集来定义顺序?每堆条形图的顺序应分开?并使用总和来指定图例的顺序?
也许作为起点很好——可以从选项列表中选择其他选项。
-> 我对此表示赞赏。
也许,最初这种模糊性就是开发人员没有为 Overlay 提供“order by”的原因?
回复:附加图形生成器功能:按降序排列覆盖值通过“配置级别”对 20 个值进行排序并不好玩。
我刚刚检查了红色三角形菜单 - 那里有按计数和标签排序的选项,但对于您的情况,我认为我们需要类似 sum(value) 的东西...

回复:附加图形生成器功能:按降序排列覆盖值作为一种解决方法,您可以使用脚本实现此功能(通过过滤器更改处理程序
每次用户更改本地数据过滤器中的设置时,您都可以调用检查并调整顺序的函数。
[编辑:在此帖子的先前版本中,我展示了错误堆叠条形图的问题。在联系 JMP 支持 (TS-00171038) 后,我无法重现视频中的行为。一切似乎都很好 - 观看新视频]
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Profit by Product.jmp" );
:Product Line << Set Property(
"Value Colors",
{"Credit Products" = -4354269, "Deposit Products" = -13912408, "Fee Based Products" =
-4042310, "Other Products" = -10628061, "Revolving Credit Products" = -13400361,
"Third Party Products" = -2668175}
);
gb = dt << Graph Builder(
Variables( X( :Quarter ), Y( :Revenue ), Overlay( :Product Line ) ),
Elements( Bar( X, Y, Legend( 4 ), Bar Style( "Stacked" ), Summary Statistic( "Sum" ) ) ),
);
ldf = gb << Local Data Filter(
Add Filter(
columns( :Country ),
Where( :Country == "Switzerland" ),
Display( :Country, N Items( 15 ), Find( Set Text( "" ) ) )
)
);
adjust order = Function( {x},
myRows = filter = ldf << Get Filtered Rows;
sub = dt << subset( All rows, Selected columns only( 0 ), private( 1 ) );
sub << select all rows << exclude() << clear select() << select rows( myRows ) << exclude();
mySummary = sub << summary( group( :Product Line ), sum(:revenue), private( 1 ) );
mySummary << Sort( By( :"sum(Revenue)"n ), Replace Table, Order( Descending ) );
ordered = As List( mySummary[0, "Product Line"] );
Close( sub, noSave );
Print( ordered );
Eval(
Eval Expr(
dt:Product Line << Set Property( "Value Order", {Custom Order( Expr( ordered ) )} )
)
);
wait(0);
);
rs = ldf << Make filter change handler( adjust order );
adjust order( 1 );
回复:附加图形生成器功能:按降序排列覆盖值- 删除
回复:附加图形生成器功能:按降序排列叠加值 - 状态更改为:已确认