如何使用 3D 数据使颜色条显示设置限制

How to make colorbar display set limits with 3D data

我发现了很多使用 pcolor 和 clim 等功能的示例,但除非我滥用它们,否则它们似乎只想处理具有 x、y、值的二维数据。

我的数据格式如下:

x y z values

在我开始在脚本中绘图之前,我正在执行一个插值,它给我新的网格数据,但没有改变值的范围,这意味着两个数字之间的单个颜色条就足够了。此插值数据格式如下:

xi yi zi interp

我用来绘制它的代码如下:

fig = plt.figure()
ax = fig.add_subplot(121, projection = '3d')
ax.scatter(xi, yi, zi, c=interp, alpha=0.08, edgecolors='none'

ax=fig.add_subplot(122, projection = '3d')
s = ax.scatter(x, y, z, c=values, alpha=0.3, edgecolors='none'
plt.colorbar(s)

所有这一切都工作得很好,但是当我加载一个单独的数据集具有相似但不相同的值范围时,问题就出现了。两个数据集之间的颜色条显示不同的范围,这不适合在两者之间进行比较。我要做的就是强行设置颜色条的最小值 (2100) 和最大值 (2600),这样我就可以将它应用于任何和所有数据集。

抱歉,如果这是一个简单的问题,但正如我所说,我似乎找不到适用于 3D 数据的解决方案。

干杯,弗拉德。

我认为您正在寻找 vminvmax ,例如

ax.scatter(x, y, z, c=values, alpha=0.3, edgecolors='none',vmin=2100,vmax=2600)