How can I draw a line over a 2D surface plot in an app?

조회 수: 7 (최근 30일)
Joshua Mitchell
Joshua Mitchell 2021년 6월 18일
댓글: SALAH ALRABEEI 2021년 6월 18일
I'm trying to draw a line on this plot when a function is triggered:
The function is below, it includes the creation of the surface plot above:
% Value changed function: NSLineSelectorSpinner
function NSLineSelectorSpinnerValueChanged(app, event)
value = app.NSLineSelectorSpinner.Value;
Bat = mvf_plane([app.minc,app.mdec,app.m],app.Ba_mag,app.Ba_inc,app.Ba_dec,30,1,app.alt);
Max = max(Bat,[],'all');
Min = min(Bat,[],'all');
plot(app.UIAxes,Bat(:,value))
xlim(app.UIAxes,[0 60]);
ylim(app.UIAxes,[Min Max]);
ytickformat(app.UIAxes,'%g');
ax = app.UIAxes;
ax.YAxis.Exponent = 0;
surf(app.UIAxes2,Bat);
ylim(app.UIAxes2, [0 60]);
xlim(app.UIAxes2, [0 60]);
view(app.UIAxes2,2);
app.UIAxes2.PositionConstraint = 'outerposition';
When the user changes the value on a spinner, a matrix ("Bat") is recalculated and the profile graph (UIAxes) and surface plot (UIAxes2) are remade. I would like to draw a vertical line along the y-axis of the surface plot at whatever "value" currently is ("value" will be along the x-axis). This is meant to just highlight whichever line is selected by the spinner without having the app open up another figure.
Thank you.

채택된 답변

SALAH ALRABEEI
SALAH ALRABEEI 2021년 6월 18일
yline(put the value)
  댓글 수: 2
Joshua Mitchell
Joshua Mitchell 2021년 6월 18일
That worked! I went with:
xline(app.UIAxes2,value,'Color','red','LineStyle','--','LineWidth',1.5);
Do you know if xline will work on a 3D plot as well?
SALAH ALRABEEI
SALAH ALRABEEI 2021년 6월 18일
yes sure, it works along the x axis.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Surface and Mesh Plots에 대해 자세히 알아보기

제품


릴리스

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by