plot stem in vertical position

x = linspace(-2*pi,2*pi,100);
y = 4*pi*randn(1,100)-2*pi;
figure;
stem(x,y, 'LineWidth', 3)
% Set up figure properties:
% Enlarge figure to full screen.
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
% Get rid of tool bar and pulldown menus that are along top of figure.
set(gcf, 'Toolbar', 'none', 'Menu', 'none');
% Give a name to the title bar.
set(gcf, 'Name', 'Stem Test', 'NumberTitle', 'Off')
hi, i want to plot it in vertical mode

 Respuesta aceptada

Voss
Voss el 18 de Mzo. de 2025
x = linspace(-2*pi,2*pi,100);
y = 4*pi*randn(1,100)-2*pi;
% Set up figure properties:
% Enlarge figure to full screen.
% Get rid of tool bar and pulldown menus that are along top of figure.
% Give a name to the title bar.
figure('Units', 'Normalized', 'OuterPosition', [0 0 1 1], 'Toolbar', 'none', ...
'Menu', 'none', 'Name', 'Stem Test', 'NumberTitle', 'Off');
ax = gca();
hold(ax,'on');
box(ax,'on');
ax.YDir = 'reverse';
ax.ColorOrder = ax.ColorOrder(1,:);
plot(ax,y,x,'o','LineWidth',3)
N = numel(x);
xx = [x;x;NaN(1,N)];
yy = [y;zeros(1,N);NaN(1,N)];
plot(ax,yy(:),xx(:),'LineWidth',3)
xline(ax,0)

4 comentarios

shamal
shamal el 20 de Mzo. de 2025
excuse me but it possibile green color the number positive and red color the number negative?
i try to do it but i can't
Voss
Voss el 20 de Mzo. de 2025
Editada: Voss el 20 de Mzo. de 2025
Here's one way (points with y == 0 are blue):
x = linspace(-2*pi,2*pi,100);
y = 4*pi*randn(1,100)-2*pi;
figure('Units', 'Normalized', 'OuterPosition', [0 0 1 1], 'Toolbar', 'none', ...
'Menu', 'none', 'Name', 'Stem Test', 'NumberTitle', 'Off');
ax = gca();
hold(ax,'on');
box(ax,'on');
ax.YDir = 'reverse';
pos = y > 0;
neg = y < 0;
zer = ~pos & ~neg;
plot(ax,y(pos),x(pos),'go','LineWidth',3)
plot(ax,y(neg),x(neg),'ro','LineWidth',3)
plot(ax,y(zer),x(zer),'bo','LineWidth',3)
N = nnz(pos);
xx = [x(pos);x(pos);NaN(1,N)];
yy = [y(pos);zeros(1,N);NaN(1,N)];
plot(ax,yy(:),xx(:),'g','LineWidth',3)
N = nnz(neg);
xx = [x(neg);x(neg);NaN(1,N)];
yy = [y(neg);zeros(1,N);NaN(1,N)];
plot(ax,yy(:),xx(:),'r','LineWidth',3)
N = nnz(zer);
xx = [x(zer);x(zer);NaN(1,N)];
yy = [y(zer);zeros(1,N);NaN(1,N)];
plot(ax,yy(:),xx(:),'b','LineWidth',3)
xline(ax,0)
shamal
shamal el 20 de Mzo. de 2025
thanks you...very good
Voss
Voss el 21 de Mzo. de 2025
You're welcome!

Iniciar sesión para comentar.

Más respuestas (1)

Walter Roberson
Walter Roberson el 18 de Mzo. de 2025

0 votos

One method is to create a hgtransform and use that as the parent axes of the stem() call. Then set the Matrix property of the hgtransform to rotate the stem plot; it is often useful to use makehgtform to create the rotation matrix.

Categorías

Preguntada:

el 18 de Mzo. de 2025

Comentada:

el 21 de Mzo. de 2025

Community Treasure Hunt

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

Start Hunting!

Translated by