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

PlotYY - Fehlermeldung bei neuem Plot

 

G-host
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.09.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.10.2012, 14:20     Titel: PlotYY - Fehlermeldung bei neuem Plot
  Antworten mit Zitat      
Hallo,
ich schreib derzeit an einem GUI, welches verinfacht dargestellt wie folgt funktiniert:
Es werde zunächst Daten eingelesen, welche man dann auf Verschiedene Arten auswerten und Plotten kann. Die Auswahl erfolgt über Radiobuttens auf einem Button Group Pannel
Dabei wird der plot immer in axis1 hineingeplottet nachdem alle Ploteigenschaften gemacht sind hold off gesetzt, damit das ganze bei einem neuen Plot wieder verschwindet und stattdesen die neue grafik auftaucht.
Wenn allerdings einmal der Befehl plotyy verwendet wird, funktioniert das ganze nicht mehr reibungslos. Ich kann dannach nicht mehr die normale plot funktion aufrufen ohne das folgender fehler erscheint, gefolgt von ganz vielen Warnungen.

Code:

Invalid handle object.

Error in ==> plotyy>localUpdatePosition at 378
newDestPos = hgconvertunits(hFig,newPos,get(axSource,'Units'),get(axDest,'Units'),get(axSource,'Parent'));
 
Warning: Error occurred while evaluating listener callback.
> In legendcolorbarlayout>makeSpace at 914
  In legendcolorbarlayout at 110
  In scribe.legend.init at 138
  In scribe.legend.legend at 122
  In legend>make_legend at 372
  In legend at 274
  In UBXGUI>pushbuttonSkyplot_Callback at 655
  In gui_mainfcn at 96
  In UBXGUI at 42
  In @(hObject,eventdata)UBXGUI('pushbuttonSkyplot_Callback',hObject,eventdata,guidata(hObject))


Meine einzige Idee das Problem zu beseitigen war den inhalt von axis1 vor dem neuen plot zu beseitigen.
Ausprobiert habe ich folgende befehle:
--> cla
--> clear handles.axis1
--> clear all axis

Nur bin ich mit meinem Latein an dieser Stelle am Ende.
Würde mich sehr freuen, wenn mir jemand weiterhelfen kann.
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.10.2012, 17:19     Titel:
  Antworten mit Zitat      
Hallo,

was ist denn passiert, wenn du diese Befehle versucht hast?
Ich würde wenn
Code:
cla(handles.axes1)

versuchen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
G-host
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.09.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.10.2012, 11:49     Titel:
  Antworten mit Zitat      
Hallo Harald danke für deinen Kommentar.

Plotyy erstellte dann zwei Linienplots, wovon mit cla einer wieder gelöscht wird.

An der Fehlermeldung an sich ändert sich dadurch absolut gar nichts :/

Gibt es denn vll eine andere Möglichkeit zwei Plots mit unterchiedlicher Skalierung und Achsenbeschriftung zu realisieren? Und den Fehler so zu umgehen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.10.2012, 11:52     Titel:
  Antworten mit Zitat      
Hallo,

ja, das Problem ist, dass PLOTYY quasi mit zwei Koordinatensystemen arbeitet.

Vorschlag: Handles von PLOTYY zurückgeben lassen und CLA auf beide anwenden.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
G-host
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.09.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.10.2012, 15:02     Titel:
  Antworten mit Zitat      
Hmmm, der Plot inhalt wäre somit gelöscht Smile ... und der fehler taucht immernoch auf. :/

Aber ich habe jetzt grob herausgefunden woran es liegt.

Wenn ich beim nächsten plot keine legende verwende kommt kein fehler, wenn ich eine verwende, kommt die besagte meldung.

Mal ein Auszug aus dem Code:

1.) der Pushbutton Uhr wird gedrückt:
Code:
function pushbuttonUhr_Callback(hObject, eventdata, handles)
% hObject    handle to pushbuttonUhr (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
iraw = length(handles.tbereich) ;
t  = handles.rtime_raw(1:iraw) ;
r2 = handles.nav.clock(1:iraw,2);
r3 = handles.nav.clock(1:iraw,3);

[AX,H1,H2] = plotyy(t, r2, t, r3)
hold on
utitel = ['Messung vom ', num2str(handles.nav.clock(1, 11:-1:9),'%1.0f / %1.0f / %4.0f')];
title({'Receiver Clock Error (Empfänger 1)'; [ '\it' '\fontsize{8}' utitel]});
grid on;
xlabel('Zeit [sec]'); %ylabel('dtGPS_1 [nsec]');
set(get(AX(1),'Ylabel'),'String','Bias [nsec]')
set(get(AX(2),'Ylabel'),'String','Drift [nsec/sec]')

hold off


guidata(hObject,handles);


2.) Beispielhaft wird der radiobuttonCA gedrückt
Je nachdem ob hier die legende verwendet oder nicht verwendet wird, erscheint die oben stehende Meldung.
Code:
function uipanelAuswerteverfahren_SelectionChangeFcn(hObject, eventdata, handles)
% hObject    handle to the selected object in uipanelAuswerteverfahren
% eventdata  structure with the following fields (see UIBUTTONGROUP)
%   EventName: string 'SelectionChanged' (read only)
%   OldValue: handle of the previously selected object or empty if none was selected
%   NewValue: handle of the currently selected object
% handles    structure with handles and user data (see GUIDATA)
% Zur Zeit werden nur GPS-Satelliten betrachtet!!!
iraw = length(handles.tbereich) ;
t  = handles.rtime_raw(1:iraw) ;

switch get(hObject,'Tag')   % Get Tag of selected object
    case 'radiobuttonCA'
       
        % Berechnung
            r = handles.ca(:,handles.prn)./1000 ;
       
        % Plot
            handles.axis1 = plot(t , r, '-d', 'MarkerSize',4 );
            hold on
            YLabel('C/A   [km]');
            ylim('auto');
            XLabel('GPS Zeit [sec]');
            set(gca,'XMinorTick','on','XTickLabel',get(gca,'XTick'))
            for i = 1 : length(handles.prn)
                legendinhalt{i} = strcat('Sat',num2str(handles.prn(i)));
            end
            legend(legendinhalt,'Location','EastOutside')

    end



Allerdings möchte ich auf die legende nicht verzichten!
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.10.2012, 16:37     Titel:
  Antworten mit Zitat      
Hallo,

bitte mal möglichst ein komplettes, lauffähiges Beispiel posten.

Ich kann mir nicht vorstellen, wieso es beim Erstellen der Legende zu dem Fehler kommt, und würde das gerne reproduzieren.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
G-host
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.09.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.10.2012, 08:26     Titel:
  Antworten mit Zitat      
Sorry für die Späte antwort.
Hier ein Beispiel:

Code:
t = (1:100)
r2 = rand(100,1)
r3 = rand(100,1)


[AX,H1,H2] = plotyy(t, r2, t, r3)
hold on
title({'Receiver Clock Error (Empfänger 1)'; [ '\it' '\fontsize{8}' 'titel']});
grid on;
xlabel('Zeit [sec]'); %ylabel('dtGPS_1 [nsec]');
set(get(AX(1),'Ylabel'),'String','Bias [nsec]')
set(get(AX(2),'Ylabel'),'String','Drift [nsec/sec]')
hold off


plot(t,r2)
hold on
legend('blau','Location','EastOutside')


Der Fehler kommt nicht, wenn du in Legende in Location rausnimmst.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 23.10.2012, 09:36     Titel:
  Antworten mit Zitat      
Hallo,

das Problem scheint zu sein, dass für plotyy zwei hintereinanderliegende Koordinatensysteme angelegt werden.

Folgende Abhilfe hat bei mir funktioniert: Vor dem einfachen Plot ein
Code:


Bitte überprüfen, ob das auch dein Problem im Zusammenhang mit GUIs löst.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
G-host
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.09.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.10.2012, 12:21     Titel:
  Antworten mit Zitat      
Smile
Super danke.
Jetzt klappt's.
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.