4

正如标题中所说,我正在尝试修复极坐标图的颜色条值(vmin=-3 和 vmax=+3)。我将生成几十个这样的图表,并且颜色条的自动缩放使比较变得非常困难。

绘图本身由以下代码生成:

fig, ax = subplots(subplot_kw=dict(projection='polar'))
cax = ax.contourf(thetas, r, values, 130)
cb1 = fig.colorbar(cax)

我已经浏览了http://matplotlib.sourceforge.org几个小时,但仍然没有找到解决方案。我会指出我正确的方向。

4

2 回答 2

2

您可以通过自己传递轮廓级别来做到这一点。

不要仅仅尝试设置 vmin=3、vmax=3,而是在 vmin 和 vmax 之间选择 130 个值,这样它们对于所有图表都是相同的,而与数据范围无关。

尝试:

contour_levels = arange(-3, 3, 0.05)

fig, ax = subplots(subplot_kw=dict(projection='polar'))
cax = ax.contourf(thetas, r, values, contour_levels)
cb1 = fig.colorbar(cax)
于 2012-08-19T15:58:51.970 回答
1

另一种解决方案可能是遵循此响应中使用的逻辑来回答关于设置颜色条的最小值和最大值的类似问题。主要内容是使用set_clim(self, vmin=None, vmax=None). 在这个问题的背景下,以下其中一项可能有效:

fig, ax = subplots(subplot_kw=dict(projection='polar'))
cax = ax.contourf(thetas, r, values, vmin=-3, vmax=3)
cb1 = fig.colorbar(cax)

或者

cb1.set_clim(vmin=-3, vmax=3)

这个答案是相同的,但解决了对多个图表使用相同颜色条最小值/最大值的必要性。

于 2021-07-29T01:05:54.093 回答