MATLAB: Zeichnen der doppelten X-Achse unten

8

Ich versuche die doppelte X-Achse nach der Abbildung nach dem Sprung zu zeichnen:

Es ist ein Semilogx-Plot in Stunden mit zusätzlichen spezifischen Ticks, die Minuten, Monate und Jahre darstellen. Wie erstelle ich diese zusätzlichen Ticks?

    
user3585594 29.04.2014, 14:05
quelle

2 Antworten

6

Sie können den Ansatz von Victor May benutzen, um eine sekundäre Achse zu überlagern, aber das erfordert mehr Feinabstimmung, um wirklich zu funktionieren.

Lassen Sie uns zunächst das grundlegende Diagramm neu erstellen:

%Vor%

Das Überlagern einer sekundären Achse funktioniert nur dann ordnungsgemäß, wenn sie die gleiche Position, Größe, Achsenbegrenzung und den gleichen Skalierungstyp wie die primäre, und hat, wenn ihr Hintergrund transparent ist (andernfalls werden die Daten ausgeblendet):

%Vor%

Geben Sie die richtigen Ticks und Tick-Labels

%Vor%

führt zu

- nicht wirklich, was wir wollen.

Mit einem Trick können wir die Ticks und Tick-Label der sekundären Achsen ins Innere gehen lassen ...

%Vor%

... aber das ist immer noch nicht das, was wir wollen.

Eine andere Strategie: Lassen Sie uns keine Achsen überlagern, sondern setzen Sie die zusätzlichen Ticks in uns!

%Vor%

Das Ergebnis

ist immer noch nicht perfekt, aber brauchbar.

    
A. Donda 29.04.2014 19:16
quelle
2

Sie können dies tun, indem Sie dem Plot ein weiteres Achsenobjekt hinzufügen und dann die Eigenschaften seiner Häkchen festlegen. Etwas wie das:

%Vor%

Zusätzlich zum Code in diesem Beispiel müssen Sie die Hilfsstrichsbeschriftungen und den Achsenbereich des zusätzlichen Achsenobjekts bearbeiten. Siehe hier als Referenz für die Eigenschaften von XLim und XTickLabel das.

MATLAB unterstützt zur Zeit keine Hilfsstrichbeschriftungen innerhalb der Achsen. Eine Funktion von Drittanbietern, die dies behandelt, kann hier gefunden werden.

    
Victor May 29.04.2014 14:18
quelle

Tags und Links