更改颜色条宽度

2 投票
2 回答
5790 浏览
提问于 2025-04-17 16:05

在这里输入图片描述

我做了这个,正如你所看到的,颜色条非常细,有没有办法在不增加高度的情况下,增加颜色条的宽度呢?

2 个回答

0

我通过结合使用 fractionaspect 这两个参数,成功调整了颜色条的宽度。你可以在这里查看相关的资料:https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.colorbar.html

4

你需要获取颜色条的坐标轴。
假设你已经有了颜色条的引用,叫做 cbar,那么你可以通过 cbar.ax 来访问它的坐标轴。

你可以通过 ax.set_aspect(number) 来控制 高度 / 宽度 的比例。这个方法会调整坐标轴的大小以匹配这个比例,但我对调整的具体方式不是很明白:

我可以逐渐增加或减少这个数字,坐标轴会在一个方向上缩小或扩大,以匹配这个比例。但在某个点之后,行为会发生变化,继续增加或减少就会导致另一个方向的扩展或缩小。

关于 axes.set_aspect 的文档中提到:

一个圆形会被拉伸,使得高度是宽度的 num 倍。aspect=1 和 aspect=‘equal’ 是一样的。

如果你想完全避免这种麻烦,可以设置 ax.set_aspect('auto'),然后用

ax.set_position((left, bottom, width, height))

来明确设置坐标轴的确切位置。

这些单位是相对于图形画布的,范围从 01,其中 0,0 是画布的左下角。

举个例子: set_position((0.1, 0.2, 0.4, 0.6)) 会把坐标轴的左下角放在 (0.1, 0.2),右上角放在 (0.1 + 0.4, 0.2 + 0.6)

撰写回答