2017-07-19 2 views
1

Ich möchte eine Serie streuen Punkte xx, yy und r ist Punktwerte. Ich möchte Farbbalken für r Werte erstellen. Es ist ähnlich wie 2-D coordination plot, ändern Sie einfach in diesem Beispiel Grundkarte.Wie scarpiere ich mit der Farbleiste?

sc=map.scatter(xx,yy,r,s=30,cmap=plt.cm.jet) 
plt.colorbar(sc) 

Aber Hinweis:

TypeError: scatter() got multiple values for argument 's' 

This answer erklärte, dass der 3. arg in scattersize implizit? Also, was ist los damit? Und wie m.scatter Punkte mit der Farbleiste?

Antwort

2

Wenn Sie die Optionen nicht beschriften, wird scatter annehmen, dass die dritte s (die Größe) ist. In Ihrem Fall sollten Sie r die Farbe der Punkte sein, so müssen Sie es sagen, dass (dh die kwarg Option c verwenden):

sc=map.scatter(xx, yy, c=r, s=30, cmap=plt.cm.jet) 

Wie in der answer you linked erwähnt, indem sie nicht das dritte Argument zu benennen und dann setzen Sie das 4. Argument auf s, Sie haben s zweimal angegeben, das erste Mal implizit (obwohl Sie nicht gemeint haben), und das zweite Mal explizit.

Ein anderer Weg, wenn Sie Ihre Argumente nicht nennen wollen, ist sicher, dass Sie sie in der gleichen Reihenfolge wie scatter erwartet haben zu machen:

sc=map.scatter(xx, yy, 30, r, cmap=plt.cm.jet) 

Vom docs Sie die erwartete sehen Bestellung:

matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, hold=None, data=None, **kwargs) 
Verwandte Themen