Python matplotlib - 绘图中的颜色代码+ ve和-ve值

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (351)

我有一堆形状(1,104)的样本,用于matplotlib的imshow函数。每一行都有一些正面和负面的价值观。下面是我用来将它们显示为图像的功能。

def show_as_image(sample):
bitmap = sample.reshape((13, 8))
plt.figure()
**plt.imshow(bitmap, cmap='gray', interpolation='nearest')**
plt.colorbar()
plt.show()

我需要对sample(或更确切地说bitmap)的正值和负值进行颜色编码。请帮忙。

提问于
用户回答回答于

您可以设置颜色编码的标准化,使其在数据的负绝对值和正绝对值之间均匀分布。在中间使用浅色的色彩图可以帮助可视化值与零的距离。

import numpy as np
import matplotlib.pyplot as plt

def show_as_image(sample):
    bitmap = sample.reshape((13, 8))
    maxval = np.max(np.abs([bitmap.min(),bitmap.max()]))
    plt.figure()
    plt.imshow(bitmap, cmap='RdYlGn', interpolation='nearest',
               vmin=-maxval, vmax=maxval)
    plt.colorbar()
    plt.show()

sample=np.random.randn(1,104)
show_as_image(sample)

用户回答回答于

您可以创建一个三维数组,为每个像素分配颜色代码。因此,如果你想要黑色和白色,你将分别通过(0,0,0)(1,1,1)。像这样的东西应该工作:

def show_as_image(sample):
    bitmap = sample.reshape((13, 8))
    bitmap_colored = np.zeros((13,8,3))
    bitmap_colored[bitmap>=0] = [1,1,1] # black for values greater or equal to 0
    bitmap_colored[bitmap<0] = [0,0,0] # white for values less than 0
    plt.figure()
    plt.imshow(bitmap_colored, interpolation='nearest')
    plt.show()

例如:

>>> sample = np.random.randint(low=-10,high=10,size=(1,104))
>>> show_as_image(sample)

将输出这样的东西:

所属标签

可能回答问题的人

  • HKC

    红客学院 · 创始人 (已认证)

    26 粉丝7 提问5 回答
  • Dingda

    Dingda · 站长 (已认证)

    4 粉丝0 提问3 回答
  • 西风

    renzha.net · 站长 (已认证)

    9 粉丝1 提问3 回答
  • 螃蟹居

    1 粉丝0 提问2 回答

扫码关注云+社区

领取腾讯云代金券