我看过与此主题相关的多篇文章,但大多数解决方案要么直接使用图形生成器,要么临时编写脚本作为解决方法。 我想知道的是 - 是否有办法将变异图中箱形图的默认颜色设置为黑色(从当前默认的红色)? 我正在使用 JMP 14.3。 任何帮助将不胜感激!
将下面的红色更改为黑色是我默认要完成的:

一百万谢谢@gzmorgan0 !! 这是一个救命窍门! 我复制了您的脚本,并将 DispatchSeg 又复制了 90 次,总共 100 次,就像您建议的那样,现在效果非常好! 我将热键更改为该插件,而不是默认的 JMP Oneway 函数,现在我什至无法分辨出区别。
你就是MVP!! 再次非常感谢!
附:我同意@tx尼尔森,能够为平台 BoxPlotSeg 设置首选项会非常好。
此外,JSL Dispatch 允许单个 DispatchSeg(箱线图段(*)等)或 DispatchAllSeg(箱线图段等)也是一个不错的解决方案。
@PCameh ,
您可以创建自定义 Oneway UI。尝试下面的脚本,它会调用内置的 Oneway 对话框。对于此脚本,只要类别组的数量为 10 个或更少,所有箱线图都将为黑色。 如果大类.jmp是当前数据表,您运行此脚本,使用身高和体重作为 Y,使用年龄作为 X,使用性别 BY,所有箱线图都将为黑色。
如果 JMP 表 Semiconductor Capability.jmp 是当前表并且您运行此脚本,则使用大量过程变量作为 Y,使用 lot_id 作为 X,
前 10 个箱线图是黑色的,但是有 13 个lot_id。
我突然想到,我没有替代语法来使其真正灵活。 因此,一种选择是修改此脚本以容纳大量类别值(可能是 100 个)。 然后将此脚本保存到您的主菜单中,也许可以将其称为“我的 Oneway”。 请注意,您还可以通过对脚本进行一些编辑来自定义线宽等。
Oneway(
Box Plots( 1 ),
X Axis Proportional( 0 ),
Points Jittered( 1 ),
SendToReport(
Dispatch(
{},
"Oneway Plot",
FrameBox,
{DispatchSeg( Box Plot Seg( 1 ), Confidence Diamond( 0 ), Set Line Color("Black") ),
DispatchSeg( Box Plot Seg( 2 ), Confidence Diamond( 0 ), Set Line Color("Black") ),
DispatchSeg( Box Plot Seg( 3 ), Confidence Diamond( 0 ), Set Line Color("Black") ),
DispatchSeg( Box Plot Seg( 4 ), Confidence Diamond( 0 ), Set Line Color("Black") ),
DispatchSeg( Box Plot Seg( 5 ), Confidence Diamond( 0 ), Set Line Color("Black") ),
DispatchSeg( Box Plot Seg( 6 ), Confidence Diamond( 0 ), Set Line Color("Black") ),
DispatchSeg( Box Plot Seg( 7 ), Confidence Diamond( 0 ), Set Line Color("Black") ),
DispatchSeg( Box Plot Seg( 8 ), Confidence Diamond( 0 ), Set Line Color("Black") ),
DispatchSeg( Box Plot Seg( 9 ), Confidence Diamond( 0 ), Set Line Color("Black") ),
DispatchSeg( Box Plot Seg( 10 ), Confidence Diamond( 0 ), Set Line Color("Black") )
}
)
)
);
谢谢!
从我在 JMP 论坛上进行的所有搜索来看,似乎不存在一种简单的方法来做到这一点。 我发现的唯一实用的解决方案来自@gzmorgan0 ,以插件的形式在创建绘图后将颜色更改为黑色: https://community.jmp.com/t5/Discussions/Customize-box-plot-color-in-JMP-preferences/td-p/63157。
虽然这非常有用,但在每次绘图后仍然需要单击按键(即使使用热键)。
想知道 JMP 管理员/工程师是否知道解决方法......
您能分享变异性图表中的箱线图脚本吗?我无法实现。感谢您的帮助!
遵循@gzmorgan0的想法
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
myPlot = Variability Chart(
Y( :height ),
X( :age ),
Variability Analysis( :height, Show Box Plots( 1 ) )
);
mySegs=report(myPlot)[FrameBox(1)]<< find segs; // get all display elements
Filter Each({seg},(mySegs), (seg<< class name)=="BoxPlotSeg") //just keep the Box Plots
<< Set Line Color("Black") 