我正在尝试绘制一个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:
这不是4D阵列。它是一个包含4列的2D数组(这两个维度可以称为“rows”和“columns”)。但我明白你想说的每一行都可以解释为描述四维空间中的一个点,第四个“维度”是颜色。在
二维性实际上是问题的关键。我怀疑您的
data
变量是numpy.matrix
,而不是普通的numpy.array
。matrix
是2D数组的一个特殊类,具有各种特殊属性,包括它的一个片段(例如,data[:, 0]
)仍然是一个二维的matrix
对象,而.scatter()
期望每个参数都是一维数组。在解决办法是说:
将数据从
matrix
转换为列切片为一维的普通数组。在顺便说一句:你可能是想说
cmap='hot'
。对plt.hot()
的调用设置了默认的颜色映射(因此您的图形可能看起来正确,但有一个副作用),但它实际上返回None
。在相关问题 更多 >
编程相关推荐