我是matplotlib的新手,但我在使用python list和numpy数组时发现了不同之处。
- Python列表代码
import matplotlib.pyplot as plt
import numpy as np
names = ['Sunny','Bunny','Chinny','Vinny','Pinny']
marks = np.array([700,300,600,400,100])
x = np.arange(len(names)) #[0,1,2,3,4]
y = x
scat = plt.scatter(x,y,s=marks,c=x,cmap='prism')
plt.legend(handles=scat.legend_elements()[0],labels=names)
plt.show()
- numpy数组码
import matplotlib.pyplot as plt
import numpy as np
names = np.array(['Sunny','Bunny','Chinny','Vinny','Pinny'])
marks = np.array([700,300,600,400,100])
x = np.arange(names.size) #[0,1,2,3,4]
y = x
scat = plt.scatter(x,y,s=marks,c=x,cmap='prism')
plt.legend(handles=scat.legend_elements()[0],labels=names)
plt.show()
为什么我在numpy数组代码中得到一个错误?这是错误:
Exception has occurred: ValueError
The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
1条答案
按热度按时间fcwjkofz1#
当你设置图例时,你需要传入names数组作为一个列表,像这样:
如果你查看原始代码的错误追溯,它会在这里失败:
if handles and labels
期望labels参数是一个列表,传递一个numpy数组会引发ValueError
。它可能应该是一个TypeError
,如果你愿意,你可以在他们的存储库中提出一个问题。