gpt4 book ai didi

python - 2D 数组中的 Matplotlib 4D 数据

转载 作者:行者123 更新时间:2023-12-01 03:29:13 25 4
gpt4 key购买 nike

我正在尝试使用颜色作为第四维来绘制 4D 数组。这是我的矩阵的示例:

[[ 4.216  0.     1.     0.   ]
[ 5.36 0. 1. 0. ]
[ 5.374 0. 2. 0. ]
...,
[ 0.294 0. 1. 0. ]
[ 0.314 0. 2. 0. ]
[ 0.304 0. 1. 0. ]]

第四列仅包含值 0、1 和 2。

所以当我尝试使用这个脚本绘制它时:

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(data[:,0],data[:,1],data[:,2], c=data[:,3], cmap=plt.hot())
plt.show()

我收到此错误:

TypeError: can't multiply sequence by non-int of type 'float'

最佳答案

这不是 4D 数组。它是一个 4 列的 2D 数组(这 2 个维度可以称为“行”和“列”)。但我明白你想说什么——每一行都可以解释为描述 4 维空间中的一个点,第四个“维度”是颜色。

二维实际上是问题的关键。我怀疑您的 data 变量是 numpy.matrix 而不是普通的 numpy.array。矩阵是二维数组的特殊类别,具有各种特殊属性,包括它的一个切片(例如,data[:, 0])是 < strong>仍然一个二维matrix对象,而.scatter()期望每个参数都是一维数组.

解决方法是:

data = numpy.asarray(data)

将数据从矩阵转换为列切片为一维的普通数组。

顺便说一句:您可能想说cmap='hot'。对 plt.hot() 的调用设置了默认颜色图(因此您的图形可能看起来正确,但有一个副作用),但它实际上返回None.

关于python - 2D 数组中的 Matplotlib 4D 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41125986/

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