我有一个数据集,它将浓度绘制为 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
,它将覆盖默认的颜色缩放。