【问题标题】:How to create colour map from 3 arrays in python如何在python中从3个数组创建颜色图
【发布时间】:2017-04-04 21:02:08
【问题描述】:

我正在尝试在 python 中创建两个数组 t1 和 t2 的颜色图,颜色由第三个 v 设置,但是我无法根据 v 数组来设置颜色条,它取而代之的是 t1。这是我的代码:

    import matplotlib.pyplot as plt
    import numpy as np
    t1 = [75, 76, 77, 78]
    t2 = [75, 76, 77, 78]
    v = [0.5, 0.5, 0.8, 0.8]

    image_data = np.column_stack([t1, t2, v])
    plt.imshow(image_data)
    plt.colorbar()
    plt.show()

它产生这个数字:

任何帮助将不胜感激。

【问题讨论】:

  • plt.imshow() 绘制二维数组(图像),但您有三个一维数组。那么它们应该如何绘制呢?
  • t1 应该在 x 轴上,t2 应该在 y 轴上,v 是图上每个点的值,应该对应于颜色
  • 您的数组 t1t2 各有 4 个值。 4 x 4 值的图像包含 16 个像素。但是您的 v 数组只有 4 个值。因此,要么您不想要图像图,要么您需要告诉我们应该如何绘制它们。

标签: python arrays numpy matplotlib colormap


【解决方案1】:

您不能使用imshow 设置 x 和 y 坐标,并将颜色设置为 3rd。 它是显示一个矩阵图像,其中有 X*Y 值,所有这些值都代表颜色。 也许您想使用scatter。 例如。你可以试试:

import matplotlib.pyplot as plt
t1 = [0,1,2,3]
t2 = [0, 10, 20, 30]
v = [0.5, 0.5, 0.8, 0.8]

plt.scatter(t1, t2, c=v, cmap='Greens')
plt.colorbar()
plt.show()

您可以查看最适合您的颜色图。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-07
    • 1970-01-01
    • 2020-06-14
    • 2021-09-20
    • 2020-09-22
    • 2014-02-01
    • 2016-08-19
    相关资源
    最近更新 更多