WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Zweite Y-Achse mit andere beschriftung, nicht plotyy

 

Napomleb

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.08.2013, 10:04     Titel: Zweite Y-Achse mit andere beschriftung, nicht plotyy
  Antworten mit Zitat      
Hallo zusammen,

also ich hab schon lange gesucht aber ich finde immer nur Lösungen die sich auf verschiedene Messwerte beziehen und dann mit plotyy gezeichnet ewrden.

Mein Problem:
Ich habe zwei Kurven dich in einem figure darstellen möchte, aber ich möchte zwei y achsen, mit verschiedene Wertebereichen darstellen.
Sozusagen nur eine Umrechnung in eine andere Einheit.

1 Y- Achse, den Wertebereich in dBm von -110dBm bis -50dBm
2 Y- Achse, den Wertebereich in dBuV von -3dBuV bis -63BuV

(dBuV = dBm+107)

Ich hab die Messerte in dBm, möchte aber beide Einheiten gleichzeitig angezeigt bekommen.
Würde also gerne einfach nur eine zweite Y- Achse mit einer anderen Beschriftung implementieren.

Mfg


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 27.08.2013, 10:12     Titel:
  Antworten mit Zitat      
Hallo,

was ich machen würde:
plotyy nehmen.
Für den zweiten Datensatz bei y-Werten dieselben, umgerechneten Werte. Alternativ NaN, dann wird nichts gezeichnet.
Im letzteren Fall musst du wohl noch die Skala anpassen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Napomleb

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.08.2013, 10:50     Titel:
  Antworten mit Zitat      
Also momentan mach ich es so:

Code:
[ax, h1, h2] = plotyy(f, instr_amplitude2, f, 10*log10(amp2./(1e-3*instr_RBW)));
set(get(ax(1),'Ylabel'),'String','Pegel - dBm')
set(ax(1), 'YLim', [-120 -40]);
set(get(ax(2),'Ylabel'),'String','Pegel - dBm/Hz')
set(ax(2), 'YLim', (get(ax(1), 'Ylim')-(10*log10(instr_RBW))) );
hold on
plot(f, instr_amplitude);
title('Betragsspektrum |X(f)|', 'FontWeight','Bold')
grid on


Hmmm, ok so funktioniert es, ist zwar ein bisschen umständlich die 2 Achse
richtig mit zu skalieren aber ok.

Was mich aber ein bisschen stört ist, das im Endeffekt jetzt 3 Traces in meinem Plot stecken, obwohl ich ja nur zwei habe.


Mir wäre es lieber wenn ich einfach (egal ob rechts oder links) noch eine Y- Achse hinzufüge und dieser einen Wertebereich zuteile. Egal ob die Werte sinnvoll sind oder abweichen.
Wenn ich es mit plotyy mache, dann ist mir schon öfters passiert das die Kurven nicht mehr deckungsgleich waren Sad
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 27.08.2013, 12:03     Titel:
  Antworten mit Zitat      
Hallo,

was verstehst du unter "Traces"?

Zitat:
Mir wäre es lieber wenn ich einfach (egal ob rechts oder links) noch eine Y- Achse hinzufüge und dieser einen Wertebereich zuteile.

Dann nimm wie vorgeschlagen NaN als y-Werte.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Napomleb

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.08.2013, 12:37     Titel:
  Antworten mit Zitat      
"Traces" sind meine einzelnen Messkurven.
Aufm Spektrumanalyzer kann man sich ja auch mehr Kurven (Traces) anzeigen lassen (sry, hat sich bei mir so einigedeutscht Very Happy )



Dein Tipp mit NaN scheint gut zu sein, aber irgendwie bekomm ich es nicht mit meiner Achsenbeschriftung hin. Mad
Auf dem Screenshot sieht man oben die Lösung mit Werten und unten die mit NaN.
Aber ich hab keine Ahnung wie ich jetzt die Y- Achse anpassen muss, damit sie wie im ersten Bild erscheint.
Wäre nett wenn du mir noch einen Tipp geben könntest.

2yachsen.JPG
 Beschreibung:

Download
 Dateiname:  2yachsen.JPG
 Dateigröße:  150.56 KB
 Heruntergeladen:  671 mal
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 27.08.2013, 12:50     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
"Traces" sind meine einzelnen Messkurven.

Hätte ich auch vermutet. Mir war nur nicht klar, wieso du anfangs überhaupt zwei Kurven hast.

Zitat:
Aber ich hab keine Ahnung wie ich jetzt die Y- Achse anpassen muss, damit sie wie im ersten Bild erscheint.

Was passiert, wenn du die y-Achse bei der Generierung des 2. Bildes genauso anpasst wie bei der Generierung des ersten Bildes?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Napomleb

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.08.2013, 13:38     Titel:
  Antworten mit Zitat      
Also die beiden Kurven sind einfach nur Frequenzsweeps mit einem Abstand von 1s.


Mein Lösung 1:
Code:
[ax, h1, h2] = plotyy(f, instr_amplitude2, f, 10*log10(amp2./(1e-3*instr_RBW)));
set(get(ax(1),'Ylabel'),'String','Pegel - dBm')
set(ax(1), 'YLim', [-120 -40]);
set(get(ax(2),'Ylabel'),'String','Pegel - dBm/Hz')
set(ax(2), 'YLim', (get(ax(1), 'Ylim')-(10*log10(instr_RBW))) );
hold on
plot(f, instr_amplitude);
title('Betragsspektrum |X(f)|', 'FontWeight','Bold')
 


Meine Lösung 2 mit NaN.
Hier zeigt er mich KEINE Werte auf der 2. Y Achse an.
Und ich hab leider keine Ahnung warum.

Code:
[ax, h1, h2] = plotyy(f, instr_amplitude2, f, NaN);
set(get(ax(1),'Ylabel'),'String','Pegel - dBm')
set(ax(1), 'YLim', [-120 -40]);
set(get(ax(2),'Ylabel'),'String','Pegel - dBm/Hz')
set(ax(2), 'YLim', (get(ax(1), 'Ylim')-(10*log10(instr_RBW))) );
hold on
plot(f, instr_amplitude, 'g');
title('Betragsspektrum |X(f)|', 'FontWeight','Bold')
 


Wenn ich den set(ax(2), 'YLim') Befehl weglasse, bekomm ich dann das untere Bild im Screenshot, mit den Werten von 0 -1 .
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 27.08.2013, 15:18     Titel:
  Antworten mit Zitat      
Hallo,

klappts, wenn du YTick noch zusätzlich setzt?

Code:
f = 1:100;
instr_amplitude2 = linspace(-120, -40);
[ax, h1, h2] = plotyy(f, instr_amplitude2, f, NaN);
set(get(ax(1),'Ylabel'),'String','Pegel - dBm')
set(ax(1), 'YLim', [-120 -40]);
set(ax(1), 'YTick', -120:10:-40);
set(get(ax(2),'Ylabel'),'String','Pegel - dBm/Hz')
set(ax(2), 'YLim', (get(ax(1), 'Ylim')-(10*log10(1e5))) );
set(ax(2), 'YTick', -170:10:-90);
hold on
plot(f, instr_amplitude2 + randn(size(instr_amplitude2)), 'g');
title('Betragsspektrum |X(f)|', 'FontWeight','Bold')


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Napomleb
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 27.08.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.08.2013, 11:03     Titel:
  Antworten mit Zitat      
Ja vielen Dank für die Hilfe!

So wie es momentan gelöst ist (mit NaN), reicht es mir erstmal.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.