im trying to plot values greater than a threshold in a different color. for example i want to plot values greater than 100 in the image in red

 Akzeptierte Antwort

Image Analyst
Image Analyst am 12 Aug. 2014

4 Stimmen

% Create sample data.
y = randi(160, 1, 40); % Array of random numbers
x = 1 : length(y);
% Plot everything with blue spots and blue lines between them.
plot(x, y, 'bo-', 'LineWidth', 2, 'MarkerSize', 7);
grid on;
% Now define a threshold.
threshold = 100;
moreThanThreshold = y > 100; % Logical indexes.
% Extract those over the threshold into new arrays.
over_x = x(moreThanThreshold);
over_y = y(moreThanThreshold);
% Now plot those over 100 with red stars over the first set of points.
hold on; % Important so you don't blow the first plot away.
plot(over_x, over_y, 'r*', 'LineWidth', 2, 'MarkerSize', 13);

3 Kommentare

ishbish
ishbish am 12 Feb. 2018
This is great, but only seems to work as a threshold on the y-axis (like a horizontal 'cutoff point').
I need a cutoff point along a certain slope. E.g. as opposed thresholding my data at the line x=100, I might want it thresholded at the line y=3x. How could I go about this?
Thanks for any help!
Image Analyst
Image Analyst am 12 Feb. 2018
Start a new question and attach some actual data, and if possible a picture of what you'd like to see.
ishbish
ishbish am 19 Feb. 2018
I ultimately decided to apply a rotation matrix to my data and then just do it as described above, much easier! Thank you for the advice though.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by