如果只有一个箱线图,则忽略 Makie 箱线图宽度
Makie boxplot width is ignored if only one boxplot
我正在使用 CairoMakie
绘制箱线图。 boxplot
中的参数 width
似乎仅在有 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 个箱线图的任何变通方法也会给我一个苗条的箱线图。谢谢。
这两个图实际上使用相同的宽度,因为框在两个图中占据相同的 x 轴范围。您可以在第二个图中看到框的范围从 0.90 到 1.10 - 因此它跨越了您要求的 0.2
宽度。
不同的是,由于第二张图只有一个数据点,所以(自动选择的)x轴的视觉跨度要小得多。乍一看,第一个图似乎显示的是从 x = 0.8 到 2.2,所以 0.2 的宽度比较窄。第二个图只显示了从 0.89 到 1.11 的范围,所以 0.2 的宽度实际上是其中的很大一部分。
要使第二个图中的框在视觉上变细,您可以使用 xlims!
:
设置 x 轴限制
boxplot(xs, ys; width=0.2)
xlims!(0, 2)
current_figure()
我正在使用 CairoMakie
绘制箱线图。 boxplot
中的参数 width
似乎仅在有 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 个箱线图的任何变通方法也会给我一个苗条的箱线图。谢谢。
这两个图实际上使用相同的宽度,因为框在两个图中占据相同的 x 轴范围。您可以在第二个图中看到框的范围从 0.90 到 1.10 - 因此它跨越了您要求的 0.2
宽度。
不同的是,由于第二张图只有一个数据点,所以(自动选择的)x轴的视觉跨度要小得多。乍一看,第一个图似乎显示的是从 x = 0.8 到 2.2,所以 0.2 的宽度比较窄。第二个图只显示了从 0.89 到 1.11 的范围,所以 0.2 的宽度实际上是其中的很大一部分。
要使第二个图中的框在视觉上变细,您可以使用 xlims!
:
boxplot(xs, ys; width=0.2)
xlims!(0, 2)
current_figure()