2016-10-25 2 views
0

Ich versuche, Punkte im zweidimensionalen Raum zu zeichnen, Beschriftungen einzufügen und wo die Farbe von jedem Punkt festgelegt wird (nicht abhängig von der Beschriftung). Der erste Versuch, die Etiketten nicht unter Berücksichtigung ist:pylab: Plotten von Punkten mit Farben

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]) 

Es gibt einen Fehler zurück, die nicht mit den Operationen passt notwendig, eine Handlung auszuführen:

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'' 

Wer Ideen hat?

Antwort

2

Hier muss keine for-Schleife verwendet werden. Übergeben Sie einfach Ihre Liste der Farben in die pylab.scatter Funktion:

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() 

Dies erzeugt das zeigt dieses Diagramm:

enter image description here

+0

Ich weiß nicht warum, bevor es nicht funktionierte .... gelöst! Vielen Dank! –

0

ändern

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

zu

pylab.scatter(x = x[k],y = y[k],c = colors[k]) 
+0

Dies ist keine Verbesserung gegenüber der bereits akzeptierten Antwort. – yacc

+0

Ok. Ich wollte nur darauf hinweisen, dass die Verwendung einer for-Schleife in Ordnung ist, falls dies aus der aktuellen Antwort nicht ersichtlich ist. – hakunamatata

Verwandte Themen