自定义 matplotlib 颜色条上的限制



我有一个数据集,它将浓度绘制为 z 值。 请注意颜色条中的古怪限制,这些限制映射到 z 值的限制。 我想要的是让颜色条限制从 0 变为某个最大值(逻辑上是超过 z_max 的第一个舍入整数(。

浓度图

以下是代码片段:

from numpy import *
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
.
.
.
monthly_concentration_array=master_yearly_df.to_numpy()
year_axis_values=master_yearly_df.index.to_numpy()
month_numbers=arange(12)
fig,ax=plt.subplots(figsize=(10,15))
contour_plot=ax.contourf(month_numbers,
year_axis_values,monthly_concentration_array,levels=40,cmap='rainbow')
colour_bar=fig.colorbar(contour_plot)

我天真地使用

colour_bar.set_clim(0,5)

但是我收到了弃用警告:

MatplotlibDeprecationWarning: set_clim函数在 Matplotlib 3.1 中已弃用,并将在 3.3 中删除。请改用ScalarMappable.set_clim。

另一个帖子建议做

colour_bar.mappable.set_clim(0,5)

但这并没有奏效。 我很困惑,因为绝大多数帖子等都早于 matplotlib 3.1,可悲的是我没有足够的底层经验来理解参考内容 "改用ScalarMappable.set_clim"的意思是。

那么,设置颜色条限制的正确当前方法是什么,以便在数据仅从 0.15 变为 4.7 时比例从 0 变为 5?

非常感谢!

您可以在ax.contourf()中添加选项vmin=0, vmax=5,它将覆盖默认的颜色缩放。

最新更新