4

CairoMakie用来绘制箱线图。中的论点似乎仅widthboxplot有 2 个或更多箱线图要绘制时才有效,但如果只有一个箱线图则被忽略。例如,

using CairoMakie

xs = rand(1:2, 1000)
ys = randn(1000)

boxplot(xs, ys; width=0.2)
current_figure()

正确地给出了一个苗条的箱线图外观:

在此处输入图像描述

但这样做:

using CairoMakie

xs = rand(1:1, 1000)
ys = randn(1000)

boxplot(xs, ys; width=0.2)
current_figure()

相反,无论我赋予width参数什么值,都会给出一个宽箱线图:

在此处输入图像描述

这是一个错误吗?任何解决方法,以便仅绘制 1 个箱线图也给了我一个苗条的箱线图。谢谢你。

4

1 回答 1

3

两个图实际上使用相同的宽度,因为框在两者中占据相同的 x 轴范围。您可以在第二个图中看到框的范围从 0.90 到 1.10 - 所以它跨越了0.2您要求的宽度。

不同的是,由于第二个图只有一个数据点,x 轴的(自动选择的)视觉跨度要小得多。乍一看,第一个图似乎显示从 x = 0.8 到 2.2,因此 0.2 的宽度相对较窄。第二个图只显示从 0.89 到 1.11 的范围,因此 0.2 的宽度实际上是其中的很大一部分。

要使第二个图中的框在视觉上变窄,您可以设置 x 轴范围xlims!

boxplot(xs, ys; width=0.2)
xlims!(0, 2)
current_figure()

x 限制为 0 到 2 的箱线图

于 2021-12-07T16:31:25.580 回答