2016-08-03 9 views
2

Ich versuche, die gebundene Dichte eines System mit dem Maskierungsfeld zur Ausblendungsliceplot für gebundenes Material in yt ohne ungebundene zeigen

@derived_field(name = "bound_density", units = "g/cm**3") 
def _get_ejected_density(field, data): 
     E = 0.5* data["cell_mass"]* (data["velx"]**2+data["vely"]**2+data["velz"]**2)+ data["gpot"]*data["cell_mass"] 
     return ((np.array(E)<0)*1)*data["density"] 

Es gibt auch die ungebundene Dichte mit den weißen Farbbalken zusammen mit dem gebundenen Dichte, aber ich möchte hier die ungebundenen Dinge nicht zeigen.

Ich fragte mich, ob es eine Möglichkeit gibt, das gebundene Material nur in dieser Handlung zu zeigen. Eine weitere Lösung wäre, den Farbbalken für ungebundene Dichte auf den Bodenbalken zu setzen, also 1.0e0, so dass der Ausdruck zwar die ungebundene Dichte zeigt, aber genau mit dem Farbbalken mit der niedrigsten Dichte im Diagramm übereinstimmt und somit nicht unterschieden werden kann.

enter image description here

Antwort

1

Hier ist ein Beispiel, das zeigt, wie die colorbar zu manipulieren, so dass die Hintergrundfarbe entspricht die Farbe an der Unterseite des colorbar:

https://gist.github.com/4d07fc6475becd18b793e15ae2f00dff

+0

dank @ nathan12343, aber ich bekomme diese Attribute : 'module' Objekt hat kein Attribut 'viridis', yt und matplotlib werden importiert. Braucht es ein anderes Modul zum importieren? – bhjghjh

+0

Viridis ist eine neue Colormap, die in Matplotlib 1.5.0 und neuer kommt. Sie können jede gewünschte matplotlib colormap verwenden, obwohl Sie auch matplotlib aktualisieren könnten, um viridis zu erhalten. – ngoldbaum

+0

an diesem Punkt, ich denke, es wäre genug, wenn ich nur die Hintergrundfarbe weiß zu setzen, werde ich losgebundenes Material dadurch loswerden, können Sie mir den Code zeigen Hintergrundfarbe weiß für diese Handlung festlegen? – bhjghjh

Verwandte Themen