我试图用我的数组中的值绘制一个散点图,一切都在工作,直到我试图用我的数组中的值缩放点的大小。
例如,我的数组如下所示:
[“50”,“50”,“0.6352952”]
第一个值是x,第二个值是y,第三个值是我想要缩放的值
我的出图目前如下所示:
for i in range(0, len(convertedResults)):
if convertedResults[i][0] and convertedResults[i][1]:
plt.scatter(convertedResults[i][0], convertedResults[i][1], s=1*convertedResults[i][2])
plt.show()
如果没有convertedResults[i][2],我可以轻松绘图,但如果我尝试设置每个点的大小,则会出现以下错误:
TypeError:输入类型不支持ufunc“sqrt”,并且根据强制转换规则“safe”,无法将输入安全地强制为任何支持的类型
我也试着手动设置s的大小为s=0.653123123(例如),它工作了。所以看起来我的数组有问题。我不知道是否有必要,但我的数组是这样构建的:
[[“50”、“50”、“0.6352952”]、[“60”、“50”、“2.8389171199999996”]、[“70”、“50”、“2.8389171199999996”]、[“50”、“60”、“0.6352952”]]
1条答案
按热度按时间drkbr07n1#
convertedResults
中的数据是字符串类型,因此您尝试将字符串传递给s
。即使您将convertedResults[i][2]
乘以1,根据Python标准,结果也是字符串。您需要在scatter
调用中使用s = float(convertedResults[i][2])