gpt4 book ai didi

python - 如何用相应的 RGB 数组绘制 2D numpy 坐标数组?

转载 作者:行者123 更新时间:2023-12-04 15:09:04 24 4
gpt4 key购买 nike

我有一个维度为 40000x2 的二维 numpy 坐标 (x, y) 数组,我正在通过机器学习模型运行它。我将预测转换为尺寸为 40000x3 的 RGB numpy 数组。 RGB 数组中的每个条目(行)对应于坐标数组的相同条目。

我希望能够快速绘制所有内容。之前,我尝试使用 scatter() 函数,但耗时太长。

# Fragment of code I used before
# coordArray (40000x2), rgbArray (40000x3)

f, ax = plt.subplots(figsize=(7, 7))
for i in range(len(coordArray)):
ax.scatter(coordArray[i, 0], coordArray[i, 1], marker='o',
c=rgbArray[i], s=1.5, alpha=1)
plt.show()

我想知道是否有更好/更快的方法来绘制数据。作为引用,我还绘制了我的训练集和测试集(只是代码片段中未显示)。

最佳答案

您可以创建一个合适的np.array 并用rgbArray 中的值填充坐标。然后用 plt.imshow 绘制数组.缺少的坐标将绘制为黑色。

import numpy as np
import matplotlib.pyplot as plt

#Example with 3 coordinates in a 2x2 array
# [0,0] -> red
# [0,1] -> green
# [1,1] -> blue
# [1,0] -> 'no information'
coord = np.array([[0,0],[0,1],[1,1]])
rgb = np.array([[1.,0.,0.],[0.,1.,0.],[0.,0.,1.]])

img = np.zeros(tuple(coord.max(0)+1)+(3,))

img[coord[:,0],coord[:,1]] = rgb
plt.imshow(img)
plt.axis('off');

输出:

image from coordinates


如果您想要散点图,则无需遍历数组。您可以使用:

plt.scatter(coord[:,0],coord[:,1], color=rgb, s=20);

输出:

scatter plot of same data

关于python - 如何用相应的 RGB 数组绘制 2D numpy 坐标数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65545428/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com