【问题标题】:displaying a colored 2d array in matplotlib in Python在 Python 的 matplotlib 中显示彩色二维数组
【发布时间】:2011-03-03 08:07:39
【问题描述】:

我想从 numpy 绘制一个二维矩阵作为 Matplotlib 中的彩色矩阵。我有以下 9×9 数组:

my_array = diag(ones(9))

# plot the array
pcolor(my_array)

我想将对角线的前三个元素设置为某种颜色,接下来的三个设置为不同的颜色,最后三个设置为不同的颜色。我想通过十六进制代码字符串指定颜色,例如“#FF8C00”。我怎样才能做到这一点?

另外,如何为 pcolor 设置 0 值元素的颜色?

【问题讨论】:

    标签: python numpy scipy matplotlib


    【解决方案1】:

    要使元素具有不同的颜色,请为它们分配不同的值:

    my_array = diag([1,1,1,2,2,2,3,3,3])
    

    要指定颜色,请尝试:

    from matplotlib.colors import ListedColormap, NoNorm
    cmap = ListedColormap(['#E0E0E0', '#FF8C00', '#8c00FF', '#00FF8C'])
    pcolor(my_array,cmap=cmap,norm=NoNorm())
    

    norm=NoNorm() 参数避免了矩阵值的任何缩放,因此 0 获得列表中的第一种颜色,1 获得第二种颜色,依此类推。

    【讨论】:

      猜你喜欢
      • 2021-10-13
      • 2019-03-29
      • 1970-01-01
      • 2019-07-18
      • 1970-01-01
      • 1970-01-01
      • 2011-05-26
      • 1970-01-01
      相关资源
      最近更新 更多