【问题标题】:Python pcolor and colorbar dont use the whole colormapPython pcolor 和 colorbar 不使用整个颜色图
【发布时间】:2017-06-01 15:17:34
【问题描述】:

当我尝试使用 -2 到 10 之间的值创建一个简单的 pcolor 图时,默认 pcolor 和颜色条仅使用从 -2 到 2 的颜色图,因此显示错误的颜色。

这是一个工作示例:

import numpy as np
from matplotlib import pyplot as plt

m = np.array([[ 0.9, 2., 2., 1.8],
              [ -0.8, 0.1, -0.6, -2],
              [ -0.1, -2, -2, -0.06],
              [ 3, 4, 7, 10]])

x = [0, 1, 2, 3]
y = [0, 1, 2, 3]
xv,yv = np.meshgrid(x,y)

fig = plt.figure()
ax = fig.add_subplot(111)
print m.min(),m.max()
cax = ax.pcolormesh(xv,yv,m, cmap='viridis')
cbar = fig.colorbar(cax)
plt.show()

我会包含一张图片,但在 stackoverflow 上没有足够的声誉

【问题讨论】:

    标签: python colormap viridis


    【解决方案1】:

    您需要在 x 和 y 中添加另一个值,因为它只在网格值之间的范围内绘制值(从 0-1、1-2、2-3、3-4 绘制图像值),像这样:

    import numpy as np
    from matplotlib import pyplot as plt
    
    m = np.array([[ 0.9, 2., 2., 1.8],
                  [ -0.8, 0.1, -0.6, -2],
                  [ -0.1, -2, -2, -0.06],
                  [ 3, 4, 7, 10]])
    
    x = [0, 1, 2, 3, 4]  # added the 4
    y = [0, 1, 2, 3, 4]  # added the 4
    xv,yv = np.meshgrid(x,y)
    
    fig = plt.figure()
    ax = fig.add_subplot(111)
    print m.min(),m.max()
    cax = ax.pcolormesh(xv,yv,m, cmap='viridis')
    cbar = fig.colorbar(cax)
    plt.show()
    

    您的示例仅使用每个维度的前 3 个值,因此整个范围是从 -2 到 2。通过再添加一个值,您可以使用整个矩阵。

    【讨论】:

      【解决方案2】:

      这是您希望的结果吗?

      import numpy as np
      from matplotlib import pyplot as plt
      
      m = np.array([[ 0.9, 2., 2., 1.8],
                    [ -0.8, 0.1, -0.6, -2],
                    [ -0.1, -2, -2, -0.06],
                    [ 3, 4, 7, 10]])
      
      x = [0, 1, 2, 3]
      y = [0, 1, 2, 3]
      xv,yv = np.meshgrid(x,y)
      
      fig = plt.figure()
      ax = fig.add_subplot(111)
      print m.min(),m.max()
      cax = ax.pcolormesh(xv,yv,m, cmap='viridis', vmin=-2, vmax=10)
      cbar = fig.colorbar(cax)
      plt.show()
      

      【讨论】:

        猜你喜欢
        • 2020-10-13
        • 2015-04-19
        • 2020-10-19
        • 2021-12-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-05
        • 1970-01-01
        相关资源
        最近更新 更多