Matplotlib方形箱线图

4 投票
3 回答
8613 浏览
提问于 2025-04-15 14:44

我有一个图,上面有两个箱线图在同一个图形里。为了好看,坐标轴的长度应该一样,这样图形的框才能是正方形。我试过用 set_aspect 方法,但因为坐标轴的范围差别太大,效果很糟糕。

即使它们的数据点数量不一样,能不能让坐标轴的比例保持1:1呢?

3 个回答

2

在做对数坐标图(loglog())的时候,别忘了使用

ax1.set_aspect(log10(xmax/xmin)/log10(ymax/ymin))
3

试试 axis('equal') 这个命令。虽然我已经有一段时间没用 matplotlib 了,但我记得我经常会输入这个命令。

5

你可以使用 Axes.set_aspect 这个功能来实现这个效果,只需要把比例设置为坐标轴的范围比。下面是一个例子:

alt text

from matplotlib.pyplot import figure, show

fig = figure()

ax0 = fig.add_subplot(1,2,1)
ax0.set_xlim(10., 10.5)
ax0.set_ylim(0, 100.)
ax0.set_aspect(.5/100)

ax1 = fig.add_subplot(1,2,2)
ax1.set_xlim(0., 1007)
ax1.set_ylim(0, 12.)
x0, x1 = ax1.get_xlim()
y0, y1 = ax1.get_ylim()
ax1.set_aspect((x1-x0)/(y1-y0))

show()

可能还有更简单的方法,但我不知道。

撰写回答