Break // in der x-Achse von matplotlib [duplizieren]

12

Um zu beschreiben, was ich erreichen möchte, verwende ich mein eigenes Bild:

Jetzt habe ich eine Menge toten Raum in der Spektralkurve, besonders zwischen 5200 und 6300. Meine Frage ist ziemlich einfach, wie würde ich in einen netten kleinen // Bruch einfügen, der so ähnlich aussieht (Bild aus der netto):

Ich verwende dieses Setup für meine Plots:

%Vor%

Ich bin ziemlich sicher, dass es mit gridpsec erreichbar ist, aber ein fortgeschrittenes Tutorial, das genau beschreibt, wie dies erreicht wird, wäre sehr zu begrüßen.

Entschuldigt bitte auch, wenn diese Frage schon beim stackoverflow beantwortet wurde, aber ich habe ausgiebig nach der korrekten Prozedur für gridSpec gesucht, aber noch nichts gefunden.

Ich habe es soweit geschafft, ziemlich genau dort:

Aber meine Bruchlinien sind nicht so steil, wie ich sie gerne hätte ... wie ändere ich sie? (Ich habe die Beispielantwort unten verwendet)

    
Michael Roberts 24.08.2015, 14:56
quelle

2 Antworten

12

Sie könnten das Matplotlib-Beispiel für einen Bruch auf der x-Achse direkt anpassen:

%Vor%

Zeichnen Sie für Ihre Zwecke einfach Ihre Daten zweimal (einmal auf jeder Achse, ax und ax2 und setzen Sie Ihre xlim s entsprechend. Die "Bruchlinien" sollten sich verschieben, um der neuen Pause zu entsprechen, da sie geplottet werden in relativen Achskoordinaten anstelle von Datenkoordinaten.

Die Bruchlinien sind nur nicht geclippte Handlungslinien, die zwischen einem Punktepaar gezogen werden. Z.B. ax.plot((1-d,1+d), (-d,+d), **kwargs) zeigt die Bruchlinie zwischen Punkt (1-d,-d) und (1+d,+d) auf der ersten Achse an: Dies ist die untere rechte. Wenn Sie den Gradenz ändern möchten, ändern Sie diese Werte entsprechend. Um dies beispielsweise steiler zu machen, probiere ax.plot((1-d/2,1+d/2), (-d,+d), **kwargs)

    
xnx 24.08.2015, 15:28
quelle
5

Die Lösung, die von xnx bereitgestellt wird, ist ein guter Anfang, aber es gibt ein verbleibendes Problem, dass die Skalen der x-Achsen zwischen den Plots unterschiedlich sind. Dies ist kein Problem, wenn der Bereich im linken Plot und der Bereich im rechten Plot gleich sind, aber wenn sie ungleich sind, gibt das Subplot den beiden Plots trotzdem die gleiche Breite, so dass die X-Achsenskala zwischen den beiden unterschiedlich ist zwei Plots (wie im Beispiel von xnx). Ich machte ein Paket, gebrochene Steuern , um damit fertig zu werden.

    
ben.dichter 07.04.2017 19:49
quelle

Tags und Links