Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pylab:使用颜色打印点_Python_Matplotlib_Colors_Label - Fatal编程技术网

Python pylab:使用颜色打印点

Python pylab:使用颜色打印点,python,matplotlib,colors,label,Python,Matplotlib,Colors,Label,我试图在二维空间中绘制点,插入标签,并设置每个点的颜色(不依赖于标签)。 第一次尝试,不考虑标签是: import pylab x = [-0.01611772, 1.51755901, -0.64869352, -1.80850313, -0.11505037] y = [ 0.04845168, -0.45576903, 0.62703651, -0.24415787, -0.41307092] colors = ['b', 'g', 'r', 'b', 'r'] for k in r

我试图在二维空间中绘制点,插入标签,并设置每个点的颜色(不依赖于标签)。 第一次尝试,不考虑标签是:

import pylab
x = [-0.01611772,  1.51755901, -0.64869352, -1.80850313, -0.11505037]
y = [ 0.04845168, -0.45576903,  0.62703651, -0.24415787, -0.41307092]
colors = ['b', 'g', 'r', 'b', 'r']

for k in range(len(x)):
    pylab.scatter(x[k],y[k],colors[k])
它返回的错误与执行绘图所需的操作不符:

Traceback (most recent call last):
  File "<pyshell#1>", line 12, in <module>
    pylab.scatter(x[k],y[k],colors[k])
  File "C:\Program Files\Anaconda\lib\site-packages\matplotlib\pyplot.py", line 3258, in scatter
    edgecolors=edgecolors, data=data, **kwargs)
  File "C:\Program Files\Anaconda\lib\site-packages\matplotlib\__init__.py", line 1818, in inner
    return func(ax, *args, **kwargs)
  File "C:\Program Files\Anaconda\lib\site-packages\matplotlib\axes\_axes.py", line 3866, in scatter
    alpha=alpha
  File "C:\Program Files\Anaconda\lib\site-packages\matplotlib\collections.py", line 833, in __init__
    self.set_sizes(sizes)
  File "C:\Program Files\Anaconda\lib\site-packages\matplotlib\collections.py", line 806, in set_sizes
    scale = np.sqrt(self._sizes) * dpi / 72.0 * self._factor
TypeError: ufunc 'sqrt' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''
回溯(最近一次呼叫最后一次):
文件“”,第12行,在
pylab.散射(x[k],y[k],颜色[k])
文件“C:\Program Files\Anaconda\lib\site packages\matplotlib\pyplot.py”,第3258行,分散显示
edgecolors=edgecolors,data=data,**kwargs)
文件“C:\Program Files\Anaconda\lib\site packages\matplotlib\\uuuu init\uuuu.py”,第1818行,在内部
返回函数(ax,*args,**kwargs)
文件“C:\Program Files\Anaconda\lib\site packages\matplotlib\axes\\u axes.py”,第3866行,分散显示
阿尔法=阿尔法
文件“C:\Program Files\Anaconda\lib\site packages\matplotlib\collections.py”,第833行,在\uuu init中__
自我设置大小(大小)
文件“C:\Program Files\Anaconda\lib\site packages\matplotlib\collections.py”,第806行,设置大小
比例=np.sqrt(自身尺寸)*dpi/72.0*自身系数
TypeError:输入类型不支持ufunc“sqrt”,并且无法根据强制转换规则“安全”将输入安全强制为任何支持的类型

有人有想法吗?

这里不需要使用for循环。只需将颜色列表传递到
pylab.scatter
功能:

import pylab

x = [-0.01611772,  1.51755901, -0.64869352, -1.80850313, -0.11505037]
y = [ 0.04845168, -0.45576903,  0.62703651, -0.24415787, -0.41307092]

colors = ['b', 'g', 'r', 'b', 'r']

pylab.scatter(x, y, c=colors)

pylab.show()
这将生成以下图表:


这里不需要使用for循环。只需将颜色列表传递到
pylab.scatter
功能:

import pylab

x = [-0.01611772,  1.51755901, -0.64869352, -1.80850313, -0.11505037]
y = [ 0.04845168, -0.45576903,  0.62703651, -0.24415787, -0.41307092]

colors = ['b', 'g', 'r', 'b', 'r']

pylab.scatter(x, y, c=colors)

pylab.show()
这将生成以下图表:

改变

pylab.scatter(x[k],y[k],colors[k]) 

改变

pylab.scatter(x[k],y[k],colors[k]) 


好啊我只是想指出,如果从当前的答案看不出这一点,那么使用for循环是可以的。我只是想指出,如果从当前的答案看不出这一点,那么使用for循环是可以的。