我試圖用我的陣列中的值繪制一個散點圖,一切正常,直到我試圖用我的陣列的值來縮放點的大小。
例如我的陣列看起來像這樣:
['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']]
uj5u.com熱心網友回復:
中的資料convertedResults是字串型別,因此您試圖將字串傳遞到s. 即使乘以convertedResults[i][2]1,根據 Python 標準,結果也是一個字串。您需要s = float(convertedResults[i][2])在scatter通話中使用
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/536266.html
上一篇:洗掉子圖matplotlib邊距
