将散点图分配给特定箱时出错

时间:2018-10-08 04:48:36

标签: python pandas numpy dataframe matplotlib

我正在尝试count在特定合并区域中的scatter points数。当我使用单个code的{​​{1}}数据时,row起作用,但是当我尝试在众多XY和{ {1}}被返回:

iterate

示例:

script

此行发生错误

rows

跟踪:

TypeError

1 个答案:

答案 0 :(得分:0)

我复制并粘贴了您的代码,并得到了该追溯-完整追溯,而不仅仅是最后两行!

Traceback (most recent call last):
  File "stack52695533.py", line 35, in <module>
    in_oval = Oval.contains_point(ax.transData.transform(([px, py])), 0)
  File "/usr/local/lib/python3.6/dist-packages/matplotlib/patches.py", line 154, in contains_point
    radius)
  File "/usr/local/lib/python3.6/dist-packages/matplotlib/path.py", line 493, in contains_point
    return _path.point_in_path(point[0], point[1], radius, self, transform)
TypeError: only size-1 arrays can be converted to Python scalars

看到patches.py中关于contains_point的一行吗?只是按我猜的名字,它期望一分。因此,现在我们需要测试其输入。

添加

print(px, py)
print(ax.transData.transform(([px, py])))

在问题行之前,产生:

[ 22  12 -66  26  -9 -60  22  41  -6   7] [111  67   4 119  36  71 105 112  91  30]
[[ 10992.    4488. ]
 [-32656.    9662.4]
 [ -4384.  -22123.2]
 [ 10992.   15206.4]
 [ -2896.    2640. ]
 [ 55136.   24816. ]
 [  2064.   44035.2]
 [ 17936.   26294.4]
 [ 52160.   41448. ]
 [ 45216.   11140.8]]

正如我所怀疑的,您正在尝试测试多个点,而不仅仅是一次。

XY为(100,10);您在第一个维度上进行迭代,但仍将10个值传递给transform

幸运的是,您提供了一个可运行的示例,否则我仍在等待您对我的最新评论的答复。