在 JMP 首选项中自定义箱线图颜色好的 - 这个问题以前曾被问过,但根据我对几次讨论的筛选,从未得到彻底的回答。
我们公司最近升级到了 JMP 13。 我是从 JMP 10 升级的。 在我的计算机上,添加到“通过 x 拟合 y”单向图的箱线图显示为红色。 在同事的计算机上全新安装了 JMP 13,添加到“通过 x 拟合 y”单向图的箱线图显示为黑色。
为了获得黑色箱线图,我必须通过右键单击图表中的空白区域进入“自定义”,然后单独更改每个箱线图轮廓。
由于我同事的箱线图没有显示为红色,这一定是某个地方的设置。
必须有一种方法可以做到这一点,而无需每次都编写脚本。
有人知道吗???????
请帮忙。
回复:在 JMP 首选项中自定义箱线图颜色最有可能的是,它发现了一些不应该出现的其他窗口(这些窗口可能在较新版本的 JMP 中发生了变化)。 对我来说,它确实找到了“日志”窗口(增强的日志?),这导致了问题,所以我添加了对“日志”窗口名称的检查:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
fit = dt << Oneway(Y(:height), X(:sex), Box Plots(1));
winlst = Get Window List();
For(i = 1, i <= N Items(winlst), i++,
_nme = winlst[i] << Get Window Title;
_child = winlst[i] << Child;
If((_child << class name) == "ListBox" & _nme != "Log",
_clnme = _child[Outline Box(1)] << get title;
If(Contains(_nme, "Oneway") | Contains(_clnme, "Oneway") | Contains(_clnme, "Fit Group"),
bseg = _child << Xpath("//BoxPlotSeg");
If(N Items(bseg) > 0,
bseg << Set Line Color("Black")
)//Set Box Type("Outlier"))
;
);
);
);
您可以编辑插件的 addin.jmpcust 文件(从 %appdata%\SAS\JMP\Addins\com.blackboxplot.addin 找到)并添加与我所做的相同的检查,或者从安装程序重建插件并修改其中的代码

回复:在 JMP 首选项中自定义箱线图颜色感谢您提供这样的解决方案,但对我来说,添加插件后,当我尝试在可变性图中使用它时,它会抛出警报“无法在访问或评估'_child [OutlineBox(1)]'时为显示框添加下标”。 你有什么解决办法吗?
回复:在 JMP 首选项中自定义箱线图颜色哈哈,这是我正在寻找的回应。
回复:在 JMP 首选项中自定义箱线图颜色哈哈 - 在显示器上?
回复:在 JMP 首选项中自定义箱线图颜色也许他们的红墨水用完了......
回复:在 JMP 首选项中自定义箱线图颜色哇,这个插件比手动修复这些要好得多。 太感谢了!
我确实希望我们能弄清楚为什么它们在我同事的机器上自动变黑。 很奇怪!
回复:在 JMP 首选项中自定义箱线图颜色我不知道将默认 BoxPlotSeq 设置为具有将颜色设置为黑色的 Box Type("Outlier") 的偏好,也不知道如何更改默认 BoxPlotSeg 线条颜色。也许 JMP 开发人员有一个仅 JSL 的偏好,可以做到这一点。
请注意,GraphBuilder 箱线图默认为黑色。
附加文件是根据以下脚本创建的加载项。 如果您安装了该插件,那么一旦创建了箱线图,就可以从主菜单 > 插件 > BlackBoxPlot 运行它。
您可能希望推迟安装加载项,以防有其他解决方案可以设置默认值;那么这个插件就没有必要了。
JSL 脚本编写器,通过一些额外的脚本,使用 Pick Color() 或提示颜色、线宽、填充和透明度的菜单,将成为一个很好的应用程序来自定义所有箱线图。 请注意,此脚本是为在 JMP 13 和 14 上运行而编写的。
Names Default To Here(1);
winlst = Window();
For(i=1, i<=nitems(winlst), i++,
_nme = winlst[i] << Get Window Title;
_child = winlst[i] << Child;
If( (_child << class name) == "ListBox",
_clnme = _child[OutlineBox(1)] <<GET title="">0, bseg << Set Line Color("Black") )//Set Box Type("Outlier"))
);
);
);</GET>