python pandas scatterplot错误:这是熊猫的错误​​吗?

时间:2013-10-16 22:24:16

标签: python matplotlib pandas

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

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

 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

1 个答案:

答案 0 :(得分:1)

使用pandas 0.12matplotlib 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 scatter example

(所以也许您使用的是旧版本,或者您正在使用“特殊”数据)。

对于pandas 0.13,有一个打开拉取请求会将“分散”作为选项添加到df.plot,以便以下行应该是等效的:

df.plot(kind='scatter', x='a', y='b', c='c', s=df.d * 100)