3

似乎无法让熊猫做散点图:

尝试做一个散点图,不断收到此错误:

 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 也会抛出错误?-最好的

4

1 回答 1

1

当您将 as 的列传递给scatter时pandas 0.12,这应该可以工作:matplotlib 1.3DataFrame

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)  
于 2013-10-17T05:32:34.113 回答