Plotting multiple data sets on the same polaraxes in AppDesigner
11 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Pawel Tokarczuk
el 16 de Jul. de 2022
Comentada: Rik
el 29 de Jun. de 2023
Should I be able to plot 2 or more data sets - e.g., measured and interpolated points - in the same polaraxes ?
I can do this in a plain figure, or GUIDE, using "hold on" and returning a handle from each plot, but I'm not succeeding in AppDesigner(2021b), which I'd like to use because of its clean appearance, ease of use and WYSIWIG screen captures using exportapp.
I'm working from the on-line example:
openExample('matlab/AppdPolarExample')
The code below fails where "plotmark" is defined:
% Define theta. Get a and b
theta = double(0:360)*(pi/180.0);
steps = double(0:10:360)*(pi/180.0); % My new code
a = app.aEditField.Value;
b = app.bEditField.Value;
% Calculate r and plot it
r = (1 + sin(a.*theta)).^(1/b);
s = (1 + sin(a.*steps)).^(1/b); % Also here
plotline = polarplot(app.Pax, theta, r);
plotmark = polarplot(app.Pax, steps, s, 'o', ...
'MarkerFaceColor', 'r', 'MarkerEdgeColor', 'k'); % THE ERROR IS HERE
% Set line color
plotline.Color = app.DropDown.Value;
plotline.LineWidth = 1.5;
The error message is "invalid or deleted object".
Are multiple plots impossible here, or is there a work-around ?
0 comentarios
Respuesta aceptada
Kevin Holly
el 18 de Jul. de 2022
Editada: Kevin Holly
el 18 de Jul. de 2022
You can still use hold on in App Designer, but you have to specify the axes.
properties (Access = private)
Pax % Polar axes
end
methods (Access = private)
function updateplot(app)
% Define theta. Get a and b
theta = 0:pi/1800:2*pi;
steps = double(0:10:360)*(pi/180.0); % My new code
a = app.aEditField.Value;
b = app.bEditField.Value;
% Calculate r and plot it
r = (1 + sin(a.*theta)).^(1/b);
s = (1 + sin(a.*steps)).^(1/b); % Also here
plotline = polarplot(app.Pax, theta, r);
hold(app.Pax,"on")
plotmark = polarplot(app.Pax, steps, s, 'o', ...
'MarkerFaceColor', 'r', 'MarkerEdgeColor', 'k');
% Set line color
plotline.Color = app.DropDown.Value;
plotline.LineWidth = 1.5;
end
end
2 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Creating, Deleting, and Querying Graphics Objects en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!