似乎无法让大熊猫做散点图:
尝试做散点图,不断收到此错误:
TypeError: only length-1 arrays can be converted to Python scalars
基本示例:
x= self.df['he']
y= self.df['xy']
sct = plt.scatter(x,y)
我正在尝试制作一个气泡图(带有颜色和大小的散点图),需要4个额外的参数
泡沫示例:
color = self.df['clr'].values
size = self.df['sze'].values
sct = plt.scatter(x, y, c=clr, s=size, linewidths=2, edgecolor='w')
再次,无论简单(散射)还是复杂(气泡):都无法超越此错误
TypeError: only length-1 arrays can be converted to Python scalars
任何帮助表示赞赏: 这是熊猫的一个错误吗? matplotlib也会抛出错误? -best
答案 0 :(得分:1)
使用pandas 0.12
和matplotlib 1.3
时,当您将DataFrame
的列作为参数传递给分散时,这应该有效:
In [18]: df = pd.DataFrame(np.random.rand(15, 4), columns=list('abcd'))
In [19]: plt.scatter(df.a, df.b, c=df.c, s=df.d*100)
Out[19]: <matplotlib.collections.PathCollection at 0x380e050>
(所以也许您使用的是旧版本,或者您正在使用“特殊”数据)。
对于pandas 0.13
,有一个打开拉取请求会将“分散”作为选项添加到df.plot
,以便以下行应该是等效的:
df.plot(kind='scatter', x='a', y='b', c='c', s=df.d * 100)