2012-07-25 10 views
6

Ich habe zwei Verteilungen innerhalb einer hexbin Handlung, wie das gezeigt: enter image description hereWie normalisiere ich ein Hexbin-Plot?

Eine Verteilung hat einen maximalen Wert von etwa 4000, während die anderen einen maximalen Wert von etwa 2500. Die Plotten Farben sind daher unterschiedlich ist.

Ich dachte, ich könnte es normalisieren, wenn ich den Maximalwert der Hexbin-Plot kannte. Woher weiß ich, wie viele Punkte innerhalb des maximalen Hexbins liegen, außer auf die Farbleiste? Ich benutze matplotlib.pyplot.hexbin

+0

haben Sie versucht, die Verteilungen selbst normalisieren? –

+0

Ja, ich habe es versucht, und es funktioniert gut, bis ich sie zusammenfügen möchte ... – Paul

Antwort

7

Sie können das Minimum und Maximum der Norm erhalten, die verwendet wird, um die Daten für die Farbauswahl zu normalisieren.

hb = plt.hexbin(x, y) 
print hb.norm.vmin, hb.norm.vmax 

Sie könnten dann weitergehen, um eine Norm mit dieser Information an die zweite Handlung zu übergeben. Das Problem dabei ist, dass der erste Plot eine größere Reichweite haben muss als der zweite, ansonsten wird der zweite Plot nicht alle gefärbt.

Alternativ und vorzugsweise können Sie eine Norm konstruieren, die Sie an die hexbin Funktion übergeben für Ihre beiden Stellplätze:

norm = plt.normalize(min_v, max_v) 
hb1 = plt.hexbin(x1, y1, norm=norm) 
hb2 = plt.hexbin(x2, y2, norm=norm) 

HTH,

+0

Dies half mir zu bekommen, was ich wollte. Vielen Dank. – Paul

+0

Wissen Sie, wie ich mehrere normalisierte Plots zu einem großen Plot addiere? – Paul