我正在做一个3D绘图,其中Z值从0延伸到大约1。我想知道是否有可能有一个色图,其中我的0.999值与我的0.99值可区分,所以我可以辨别那些峰值。
这是我当前的相关代码:
fig = plt.figure()
ax = fig.gca(projection='3d')
surf = ax.plot_surface(X_grid, Y_grid, Z_grid, cmap=cm.coolwarm)
为清楚起见进行编辑:
我有从0到1的连续Z值。我的大多数值都在0.990左右,尽管有一些峰值在0.999附近。因此,我一直在寻找一种具有“更高分辨率”的连续色图,它从一种颜色从0.990变为另一种颜色在0.999,从而使最后+0.009的变化可见。一个二进制解决方案,尽管所有值都超过给定数字(例如0.998),但看起来也不那么好!
答案 0 :(得分:2)
您可以为matplotlib颜色图设置3种特殊颜色, 超过,低于和糟糕。这些分别是超出范围和nan值的颜色。
对于您的用例,您可以将颜色范围的最大值设置为0.99,然后像这样设置覆盖颜色:
cmap = plt.get_cmap('coolwarm')
cmap.set_over('black')
fig = plt.figure()
ax = fig.gca(projection='3d')
surf = ax.plot_surface(X_grid, Y_grid, Z_grid, cmap=cmap, vmax=0.99)