Matplotlib:在极坐标轮廓图的颜色条上固定边界

时间:2012-08-19 15:43:59

标签: python matplotlib contour colorbar

正如标题中所述,我试图修正极坐标等值线的颜色条(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几个小时但仍未找到解决方案。我会指出正确的方向。

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:1)

另一种解决方案可能是遵循 this response 中使用的逻辑来解决有关设置颜色条的最小值和最大值的类似问题。主要内容是使用 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)

This answer 与此类似,但解决了对多个图形使用相同颜色条最小值/最大值的必要性。