CairoMakie绘制单个箱线图时width参数被忽略的问题咨询
问题原因说明
这个现象不属于Bug,是Makie库箱线图的默认轴范围适配逻辑导致的:
- 当存在2个及以上箱线分组时,x轴默认范围会覆盖所有分组的前后各0.5单位,分组间的间隔为1单位,
width参数基于单位间隔计算的宽度可以正常展示 - 当仅存在1个分组时,x轴默认范围会紧贴该分组的前后边界,没有预留多余的空白空间,因此设置的宽度看起来和默认宽度一致,实际是被压缩的轴范围覆盖了视觉效果
可行解决方案
方案1:手动调整x轴范围
绘制完成后手动修改x轴的上下限,给两侧预留足够的空白空间即可显示设置的宽度:
using CairoMakie xs = rand(1:1, 1000) ys = randn(1000) # 接收返回的轴对象 fig, ax, plt = boxplot(xs, ys; width=0.2) # 手动设置x轴范围,按需调整两端的留白大小 xlims!(ax, 0, 2) current_figure()
方案2:创建图表时直接指定轴范围
也可以在调用boxplot时直接传入轴参数提前设定范围:
using CairoMakie xs = rand(1:1, 1000) ys = randn(1000) boxplot(xs, ys; width=0.2, axis=(; limits=(0, 2, nothing, nothing))) current_figure()
内容的提问来源于stack exchange,提问作者cbsteh
相关产品推荐
相关产品推荐

