Frage

Ich mag den Farbbereich auf mehreren Streudiagramme fixieren und in einem colorbar zu jeder Parzelle hinzufügen (die die gleichen in jeder Figur sein werden). Im Grunde bin ich alle Aspekte der Achsen Fixierung und Farbraum usw., so dass die Plots mit dem Auge direkt vergleichbar sind.

Für das Leben von mir, ich kann nicht, um herauszufinden, alle die verschiedenen Möglichkeiten scheint, um die Farbpalette zu fixieren. Ich habe versucht, Vmin, Vmax, aber es scheint nicht, etwas zu tun, habe ich auch versucht, Clim (x, y) und das scheint nicht zu arbeiten entweder.

Das muss hier kommen und dort, kann ich nicht die einzige sein, die verschiedene Teilmengen von Daten zwischen Diagrammen vergleichen will ... ja, wie Sie die Farben fixieren, so dass jede Daten hält es die Farbe zwischen den Parzellen und aufgrund der Änderung -v- des ganzen Satzes in max / min der Teilmenge nicht zu einer anderen Farbe neu zugeordnet werden?

War es hilfreich?

Lösung

Einstellung Vmin und Vmax sollte dies tun.

Hier ist ein Beispiel:

import matplotlib.pyplot as plt

xyc = range(20)

plt.subplot(121)
plt.scatter(xyc[:13], xyc[:13], c=xyc[:13], s=35, vmin=0, vmax=20)
plt.colorbar()
plt.xlim(0, 20)
plt.ylim(0, 20)

plt.subplot(122)
plt.scatter(xyc[8:20], xyc[8:20], c=xyc[8:20], s=35, vmin=0, vmax=20)   
plt.colorbar()
plt.xlim(0, 20)
plt.ylim(0, 20)

plt.show()

Und die Handlung dies erzeugt:

Andere Tipps

Ok, das ist nicht wirklich eine Antwort, aber ein Follow-up. Die Ergebnisse meiner Codierung Ändern Tom Code oben. [Nicht sicher, dass ich die Antwort Häkchen entfernen möchten, wie Sie den obigen Code funktioniert, und ist eine Antwort auf die Frage!]

Es scheint nicht zu Arbeit für meine Daten !! Im Folgenden finden Sie modifizierte Code, der mit meiner Daten verwendet werden können, einen Plot zu erzeugen, die für mich nicht aus irgendeinem seltsamen Grund arbeiten. Die Eingabe kam anhand der h5py Funktionen (hdf5 Datendatei importieren).

Im Folgenden ist rf85 eine Teilmenge der Felder für die großen Stapel von Experimenten, bei denen die HF-Leistung an dem System angelegt war etwa 85 Watt vor. Ich bin im Grunde häppchenweise die Daten auf verschiedene Weise zu versuchen und einen Trend zu sehen. Dies ist die 85 Watt im Vergleich zum Gesamtdatenmenge, die aktuelle Eingabe ist (mehr Daten ist, aber das ist, was ich jetzt habe).

import numpy
import matplotlib.pyplot as plt

CurrentsArray = [array([ 0.83333333,  0.8       ,  0.57142857,  0.83333333,  1.03333333,
        0.25      ,  0.81666667,  0.35714286,  0.26      ,  0.57142857,
        0.83333333,  0.47368421,  0.80645161,  0.47368421,  0.52631579,
        0.36666667,  0.47368421,  0.57142857,  0.47368421,  0.47368421,
        0.47368421,  0.47368421,  0.47368421,  0.61764706,  0.81081081,
        0.41666667,  0.47368421,  0.47368421,  0.45      ,  0.73333333,
        0.8       ,  0.8       ,  0.8       ,  0.47368421,  0.45      ,
        0.47368421,  0.83333333,  0.47368421,  0.22222222,  0.32894737,
        0.57142857,  0.83333333,  0.83333333,  1.        ,  1.        ,
        0.46666667])]

growthTarray = [array([ 705.,  620.,  705.,  725.,  712.,  705.,  680.,  680.,  620.,
        660.,  660.,  740.,  721.,  730.,  720.,  720.,  730.,  705.,
        690.,  705.,  680.,  715.,  705.,  670.,  705.,  705.,  650.,
        725.,  725.,  650.,  650.,  650.,  714.,  740.,  710.,  717.,
        737.,  740.,  660.,  705.,  725.,  650.,  710.,  703.,  700.,  650.])]

CuSearray = [array([ 0.46395015,  0.30287259,  0.43496888,  0.46931773,  0.47685844,
        0.44894925,  0.50727844,  0.45076198,  0.44977095,  0.41455029,
        0.38089693,  0.98174953,  0.48600461,  0.65466528,  0.40563053,
        0.22990327,  0.54372179,  0.43143358,  0.92515847,  0.73701742,
        0.64152173,  0.52708783,  0.51794063,  0.49      ,  0.48878252,
        0.45119732,  0.2190089 ,  0.43470776,  0.43509758,  0.52697697,
        0.21576805,  0.32913721,  0.48828072,  0.62201997,  0.71442359,
        0.55454867,  0.50981136,  0.48212956,  0.46      ,  0.45732419,
        0.43402525,  0.40290777,  0.38594786,  0.36777306,  0.36517926,
        0.29880924])]

PFarray = [array([ 384.,  285.,  280.,  274.,  185.,  185.,  184.,  184.,  184.,
        184.,  184.,  181.,  110.,  100.,  100.,  100.,   85.,   85.,
         84.,   84.,   84.,   84.,   84.,   84.,   84.,   84.,   84.,
         84.,   84.,   84.,   84.,   84.,   27.,   20.,    5.,    5.,
          1.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,    0.])]

rf85growthTarray = [array([ 730.,  705.,  690.,  705.,  680.,  715.,  705.,  670.,  705.,
        705.,  650.,  725.,  725.,  650.,  650.,  650.])]

rf85CuSearray = [array([ 0.54372179,  0.43143358,  0.92515847,  0.73701742,  0.64152173,
        0.52708783,  0.51794063,  0.49      ,  0.48878252,  0.45119732,
        0.2190089 ,  0.43470776,  0.43509758,  0.52697697,  0.21576805,
        0.32913721])]

rf85PFarray = [array([ 85.,  85.,  84.,  84.,  84.,  84.,  84.,  84.,  84.,  84.,  84.,
        84.,  84.,  84.,  84.,  84.])]

rf85CurrentsArray = [array([ 0.54372179,  0.43143358,  0.92515847,  0.73701742,  0.64152173,
        0.52708783,  0.51794063,  0.49      ,  0.48878252,  0.45119732,
        0.2190089 ,  0.43470776,  0.43509758,  0.52697697,  0.21576805,
        0.32913721])]

Datavmax = max(max(CurrentsArray))
Datavmin = min(min(CurrentsArray))

plt.subplot(121)
plt.scatter(growthTarray, CuSearray, PFarray, CurrentsArray, vmin=Datavmin, vmax=Datavmax, alpha=0.75)
plt.colorbar()
plt.xlim(600,760)
plt.ylim(0,2.5)

plt.subplot(122)
plt.scatter(rf85growthTarray, rf85CuSearray, rf85PFarray, rf85CurrentsArray, vmin=Datavmin, vmax=Datavmax, alpha=0.75)
plt.colorbar()
plt.xlim(600,760)
plt.ylim(0,2.5)

plt.show()

Und schließlich die Ausgabe:

Bitte beachten Sie, dass dies für meine Arbeit nicht der perfekte Ausgang ist, aber ich habe nicht aufwenden Mühe es perfekt zu machen. Wichtig ist jedoch: Datenpunkte, dass Sie als die gleiche zwischen den Parzellen erkennen werden nicht die gleiche Farbe enthalten , wie der Fall sein sollte auf der Grundlage der vmin vmax Verwendung oben (als Tom Code schon sagt)

Das ist verrückt. :( ich hoffe jemand auf das für mich beleuchten kann! Ich bin sicher, mein Code ist nicht so toll, also bitte keine Sorge in ohnehin zu beleidigen, wenn es um meinen Code kommt !!

Zusatztasche von firey-hot cheetos für jeden, den sie auf eine Art und Weise vorschlagen kann. -Innensechskant

UPDATE- Tom10 fing das Problem - Ich hatte die falschen Daten für einen meiner Unteranordnungen versehentlich verwendet, um die Werte zu verursachen unterschiedliche Farbstufen zu geben, als erwartet ( dh meine Daten falsch war!) Big für this- Tom Requisiten ich wünschte, ich ihm eine andere up-Abstimmung geben könnte, aber aufgrund meiner Methode, um diese Frage zu stellen, kann ich nicht (sorry Tom!)

Bitte beachten Sie auch sein wunderbares Beispiel für Text an den Datenpositionen Plotten unten erwähnt.

Hier ist ein aktualisiertes Bild zeigt, dass Tom Methode funktioniert tatsächlich funktioniert, und dass das Plotten war ein Problem in meinem eigenen Code: alt text

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top