Python 3.x python 3.x中的matplotlib分散问题

Python 3.x python 3.x中的matplotlib分散问题,python-3.x,Python 3.x,我只是通过anaconda发行版将我的系统从Python2.x更新为Python3.x。我与Python2.x兼容的脚本不再正常工作。我已经修复了它的大部分,但不知道如何修复matplotlib散布的错误。我想绘制用计算出的统计值进行颜色编码的散射(圆)点。每个圆都有相应的标签 谷歌搜索。这表明matplotlib(使用Python3.x)中发现了一个bug,它不适用于输入参数的迭代器类型。我不确定是否已使用最新版本的matplotlib修复了此错误 部分代码: n=[2,4,5,6,7,8,1

我只是通过anaconda发行版将我的系统从Python2.x更新为Python3.x。我与Python2.x兼容的脚本不再正常工作。我已经修复了它的大部分,但不知道如何修复matplotlib散布的错误。我想绘制用计算出的统计值进行颜色编码的散射(圆)点。每个圆都有相应的标签

谷歌搜索。这表明matplotlib(使用Python3.x)中发现了一个bug,它不适用于输入参数的迭代器类型。我不确定是否已使用最新版本的matplotlib修复了此错误

部分代码:

n=[2,4,5,6,7,8,12]
XPOS, YPOS = [0,1,2,3,4,5,6], [0,1,2,3,4,5,6]

data = np.loadtxt(infile)
value = data[:,1]

stat = median_absolute_deviation(value)*1000.

for i in range(7):

    plt.scatter(XPOS[i],YPOS[i], s=1500, c=stat, cmap='RdYlGn_r', edgecolors='black', vmin=0.1, vmax=1.0)
    plt.text(XPOS[i], YPOS[i], n[i])

只是试图复制这个;如果您将
x
y
c
传递为列表,而不是作为标量传递,那么它似乎是有效的:

将numpy导入为np
将matplotlib.pyplot作为plt导入
n=[2,4,5,6,7,8,12]
xpo,YPOS=[0,1,2,3,4,5,6],[0,1,2,3,4,5,6]
N=8
颜色=np.linspace(0,1,N)
对于范围(N-1)内的i:
plt.散射([XPOS[i]],[YPOS[i]],s=1500,c=[colors[i]],cmap='RdYlGn_r',
edgecolors='黑色',vmin=0.1,vmax=1.0)
plt.text(XPOS[i],YPOS[i],n[i])

谢谢!!它起作用了。通过列表使用python 3.x。太棒了!顺便说一句,如果你想疯狂地绘制斑点,如果你还不知道的话,可以查看
networkx
包;-)
  File "//anaconda3/lib/python3.7/site-packages/matplotlib/pyplot.py", line 2841, in scatter
    None else {}), **kwargs)
  File "//anaconda3/lib/python3.7/site-packages/matplotlib/__init__.py", line 1589, in inner
    return func(ax, *map(sanitize_sequence, args), **kwargs)
  File "//anaconda3/lib/python3.7/site-packages/matplotlib/axes/_axes.py", line 4446, in scatter
    get_next_color_func=self._get_patches_for_fill.get_next_color)
  File "//anaconda3/lib/python3.7/site-packages/matplotlib/axes/_axes.py", line 4257, in _parse_scatter_color_args
    n_elem = c_array.shape[0]
IndexError: tuple index out of range