Add markers to stem plot above a threshold

31 次查看(过去 30 天)
Hello,
I have a stem plot where I have removed all the markers. Now I want to add cross markers to the stems that exceed a certain threshold on the y-axis.
Is there a way to do that?

采纳的回答

Cris LaPierre
Cris LaPierre 2020-5-19
编辑:Cris LaPierre 2020-5-19
This would have to be done in two steps. First, create your stem plot with no markers, then plot a second stem plot on top of it for just the data that meets your requirements. Here's a simple example.
% Create your data. You will need x for the second plot.
x = 1:7;
y=[2 3 2 6 2 5 1];
% Find data points that exceed your threshold
ind = y>=5;
%Create the first stem plot. Specify the color to use in both stem plots
stem(x,y,"Marker","none",'Color','b')
% Add a second stem plot on top of the first.
hold on
stem(x(ind),y(ind),'Color','b','Marker',"x","LineStyle","none")
hold off
xlim([0,8])
ylim([0,8])

更多回答(1 个)

Johannes Hougaard
Johannes Hougaard 2020-5-19
Either by plotting the stem plot in two steps (over and under cutoff)
data = rand(18,1)+randperm(18)';
figure;axes;hold on;
cutoff = 12;
stem(find(data <= cutoff),data(data <= cutoff),'Marker','none','Color',[0 0.4470 0.7410]);
stem(find(data > cutoff),data(data > cutoff),'b','Marker','x','Color',[0 0.4470 0.7410]);
Or by adding x'es as a text
figure;
sh = stem(data,'Marker','none');
text(sh.XData(sh.YData > cutoff),sh.YData(sh.YData > cutoff),'x','color',get(sh,'Color'),...
'HorizontalAlignment','center','VerticalAlignment','bottom');

类别

Help CenterFile Exchange 中查找有关 Stem Plots 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by