2016-05-12 6 views
1

Ich habe eine Plotter-GUI erstellt, mit der ich Datendateien laden, unabhängige/abhängige Variablen auswählen und mehrere Zeilen plotten kann. Gerade jetzt, wenn es mehrere Zeilen überstreicht, durchläuft es einfach die Matlab-Standardfarbenreihenfolge mit dem durchgezogenen Linientyp.GUI-Popup-Menü für Farb-/Linientyp-Auswahl

Ich möchte meiner GUI mehrere Popup-Menüs hinzufügen, um verschiedene Kurven und Linientypen (gleichmäßige Linienbreite) verschiedenen Kurven wie dem unten gezeigten Matlab Plot Tool zuzuweisen (natürlich nicht so ausgefallen). enter image description here

Aus irgendeinem Grunde kann ich ein Bild nicht fügen Sie das Matlab Plot-Tool zu zeigen, aber im Grunde gibt es Reihe von Popup-Menüs (auch bekannt als Drop-Down-Menü) mit Linientyp, Linienstärke und Linienfarbe; und auch Markertyp, Markergröße und Markerfarbe.

Wie soll ich vorgehen? Ich kann GUIDE nicht verwenden, da sich die Dimensionen von und die Optionen auf der GUI mit verschiedenen Dateitypen oder Parametertypen ändern, die in ihnen enthalten sind. Es ist eine variierende GUI, während Sie mit einer GUI von GUIDE stecken bleiben (zumindest ist das mein Verständnis).

+0

Ich verstehe nicht, was die Frage ist. Fragen Sie, wie man das in GUIDE macht oder wie man das [programmatisch] macht (http://www.mathworks.com/help/matlab/creating_guis/about-the-simple-programmatic-gui-example.html)? Unabhängig davon können Sie dies in beiden wirklich erreichen. Die Linien- und Markierungsoptionen sind nur [uicontrol'] (http://www.mathworks.com/help/matlab/ref/uicontrol.html) Objekte und Sie können den Farbauswahldialog mit ['uisetcolor'] (http : //www.mathworks.com/help/matlab/ref/uisetcolor.html). – excaza

+0

@excaza, genau das wollte ich wissen, uisetcolor. Vielen Dank. Wie mache ich Ihren Kommentar als ausgewählte Antwort? – Eric

+0

@excaza, auch wie mache ich das in GUIDE? – Eric

Antwort

1

Der Standard MATLAB Farbauswahlbox genannt uisetcolor verwendet werden können, die ein RGB-Triplett zurückgibt. Wenn Sie eine Ausgabe an plot angeben, können Sie die Eigenschaften Ihrer geplotteten Linie (n) ändern, ohne erneut zu plotten. Sie können das von uisetcolor zurückgegebene RGB-Triplett in einem Aufruf an set verwenden und die 'Color' Ihres Plots ändern.

ist hier ein allgemeines Beispiel einer programmatische GUI:

function testcode 
% Initialize GUI 
handles.myfig = figure('MenuBar', 'none', ... 
         'Name', 'Sample GUI', ... 
         'NumberTitle', 'off', ... 
         'ToolBar', 'none', ... 
         'Units', 'Pixels', ... 
         'Position', [400 200 800 600] ... 
         ); 
handles.myaxes = axes('Parent', handles.myfig, ... 
         'Units', 'Normalized', ... 
         'Position', [0.35 0.1 0.6 0.8] ... 
        ); 
handles.myplot = plot(handles.myaxes, 1:10); % Plot dummy data 
handles.colorbutton = uicontrol('Parent', handles.myfig, ... 
           'Style', 'pushbutton', ... 
           'Units', 'Normalized', ... 
           'Position', [0.05 0.1 0.2 0.8], ... 
           'String', 'Change Color' ... 
           ); 
set(handles.colorbutton, 'Callback', {@changecolor, handles}); 
end 

function changecolor(~, ~, handles) 
rgb = uisetcolor(); 
set(handles.myplot, 'Color', rgb); 
end 

Der Prozess sein wird oder weniger das gleiches für einen GUIDE GUI zusammen mit Ihren eigenen Dropdown-Listen für andere Leitungseigenschaften zu machen. Sie können auch die Dokumentation von MATLAB für Sharing Data Among Callbacks referenzieren.

-1

Im Allgemeinen bin ich nicht sicher, dass es ein Problem mit GUI ist. Um die Ploteigenschaften zu ändern, können Sie die Dokumentation der Ploteigenschaften überprüfen.

http://www.mathworks.com/help/matlab/ref/chartline-properties.html

Zum Beispiel können Sie mit gestrichelter Linie wie dieses Grundstück:

plot(1:10, 'LineStyle', '--'); 
+1

Das beantwortet seine Frage nicht einmal im Entferntesten. – excaza

Verwandte Themen