Matplotlib二维数组中的4D数据

2024-05-13 21:46:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试绘制一个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.   ]]

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

所以当我试着用这个脚本来描绘它的时候:

^{pr2}$

我得到了这个错误:

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

Tags: 脚本示例by颜色错误绘制矩阵数组
1条回答
网友
1楼 · 发布于 2024-05-13 21:46:57

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

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

解决办法是说:

data = numpy.asarray(data)

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

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

相关问题 更多 >