Réponse acceptée

Star Strider
Star Strider le 21 Mar 2021
I am not certain what you want.
Adapt this to your data:
x = linspace(0, 7200, 250); % Create ‘x’
y = rand(size(x))*4.5E+4; % Create ‘y’
figure
plot(x, y, 'r.')
hold on
Lv = y>1E+4; % Set Threshold At 1E+4
plot(x(Lv), y(Lv), '.b')
hold off
legend('All Data', 'Data Above Threshold')
.

9 commentaires

Phudit Kanittasut
Phudit Kanittasut le 21 Mar 2021
I want to show the dot that occour above 1
Change the threshold to 1:
Lv = y>1; % Set Threshold At 1E+4
then plot it as:
plot(x(Lv), y(Lv), '.r')
Choose whatever colour you want the dots to be.
Phudit Kanittasut
Phudit Kanittasut le 21 Mar 2021
Is there any error in my code ?
Star Strider
Star Strider le 21 Mar 2021
I do not have your data, and I cannot run images of code in my version of MATLAB.
So, I have no idea if there are any errors in it, other than that the data you are loading is ‘pure_liver’. and you are plotting ‘pure_brain’ that apparently does not exist in your workspace. That would appear to me to be an error.
Phudit Kanittasut
Phudit Kanittasut le 21 Mar 2021
Oh I already change it and nothing happen
Star Strider
Star Strider le 21 Mar 2021
I would need the data and your code (as text, not an image) to see what the problem is.
pure_liver = importdata('Pure Liver Spectra.csv');
[pks,locs] = findpeaks(pure_liver(:,2));
x = 1:size(pure_liver,1);
%Pure brain peak
%figure
%plot(x, pure_brain(:,2))
%hold on
%plot(x(locs), pure_brain(locs,2), '^r')
%hold off
%grid
%Pure Brain Dot
figure
Lv = y>1;
plot(x(Lv), pure_liver(Lv), '.r')
grid
title('Pure Liver peak');
%save files
%dlmwrite('pks_data.csv',pks);
Phudit Kanittasut
Phudit Kanittasut le 21 Mar 2021
This is my code and my data
All the ‘pks’ values are greater than 1, and range from 102 to 45448:
pure_liver = readmatrix('Pure Liver Spectra.csv');
[pks,locs] = findpeaks(pure_liver(:,2));
x = 1:size(pure_liver,1);
[pks_min,pks_max] = bounds(pks) % Minimum & Maximum Values Of ‘pks’
figure
Lv = pure_liver(locs,2)>1E+4; % Set Threshold = 1E+4
% Lv = pure_liver(locs,2)>1; % Set Threshold = 1
plot(x(locs(Lv)), pure_liver(locs(Lv),2), '.r')
grid
title('Pure Liver peak');
Note that what appears to be ‘1’ on the plot is actually . Choose the ‘Lv’ assignment that does what you want.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Printing and Saving dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by