2017-07-07 4 views
2

Ich habe ein Streudiagramm über einer Grundkarte der USA unter Verwendung von pyplot.scatter erstellt, in dem die Bins des Farbbalkens gleichmäßig über den Bereich der Eingabedaten verteilt sind. Ich möchte jedoch explizit die Behälter des Farbbalkens steuern, um ungleiche Behälter, z. [-20, -10, -5,-4,-3,-2,-1,0,1,2,3,4,5,50] anstelle von gleichmäßig verteilten Behältern zwischen -20 und 50. Wie kann das gemacht werden?Explizites Festlegen von Farbbalken-Bin in plt.scatter

+0

Sie meinen erstellen uneben Bins diskreter Farbbalken? Oder setzen Sie einfach Ihre eigenen Ticks auf diese Werte in der Liste? –

+0

Eigene Ticks auf Werte in dieser Liste setzen, um nicht reguläre Ticks zu erhalten. wie in diesem Plot: https://www.nature.com/article-assets/npg/geo/journal/v9/n7/carousel/geo2721-f4.jpg – jimutters

Antwort

1

Um Ihre eigenen Zecken in einem colorbar in plt.scatter gesetzt Sie ticks Parameter in fig.colorbar, was auch immer die Liste der Werte, die Sie wünschen, ändern können:

import matplotlib.pyplot as plt 
fig, ax = plt.subplots() 
cm = plt.cm.get_cmap('RdYlBu') 
xy = range(20) 
z = xy 
sc = plt.scatter(xy, xy, c=z, vmin=0, vmax=20, s=35, cmap=cm) 

cbar = fig.colorbar(sc, ticks=[0, 1, 15]) 
plt.show() 

+0

danke dafür, aber ich denke, meine ursprüngliche Antwort auf Ihre Frage war falsch. Ich möchte Bins erstellen, die unterschiedlich große Zahlenbereiche darstellen, aber auf der Farbleiste gleichmäßig verteilt sind. wie folgt: https://www.nature.com/article-assets/npg/geo/journal/v9/n7/carousel/geo2721-f4.jpg – jimutters

+0

@jimutters Oh, ok, aber ich denke, dass meine Lösung das schaffen kann , nicht wahr? Ich meine, Sie müssten einfach die Werte in einer diskreten Farbleiste setzen, oder sind diese Zahlen in der Farbleiste "fiktional" und repräsentieren nicht die realen Werte, die zugewiesen werden? –

+0

Um eine diskrete Colormap zu erhalten, ersetzen Sie einfach die dritte Codezeile durch 'cm = plt.cm.get_cmap ('RdYlBu', 10)' 'zum Beispiel funktioniert die Tick-Zuweisung immer noch. –

Verwandte Themen