How to draw with semiology in MATLAB?

6 vues (au cours des 30 derniers jours)
Haitham AL Satai
Haitham AL Satai le 21 Sep 2022
I have below the following information:
Q = [16,32,64,128,256,512,1024];
y = [9 9 9 9 5 0 0]*0.25;
y1 = [45 37 25 21 5 0 0]*0.25;
After multiplication with 0.25 they became as below
y
y1
and the above Q is the same
when I use the semiology plot function as below
semilogy(Q,y,Q,y1)
xlabel('Q oder');
ylabel('Coverage area m^2');
grid on;
I saw the x and y axis are different than what I have in Q and Y as shown below. Does this make sense?
Do I apply it in the wrong way (I mean xlim and ylim not as the values in vectors for example x-axis (16 , 32, ...1024))? If yes, May you assist me?
  4 commentaires
Stephen23
Stephen23 le 21 Sep 2022
Modifié(e) : Stephen23 le 21 Sep 2022
"I mean xlim and ylim not as the values in vectors for example x-axis (16 , 32, ...1024))"
Because the 0-values are not plotted the corresponding x-values are ignored, so your x data range is from 16 to 256.
Haitham AL Satai
Haitham AL Satai le 21 Sep 2022
@Stephen23 Thanks a lot for your clarification dear.

Connectez-vous pour commenter.

Réponse acceptée

Chunru
Chunru le 21 Sep 2022
Modifié(e) : Chunru le 21 Sep 2022
Q = [16,32,64,128,256,512,1024];
y = [9 9 9 9 5 0 0]*0.25;
y1 = [45 37 25 21 5 0 0]*0.25;
% in logscale, log(0) = -inf and it cannot be plotted
semilogy(Q,y,Q,y1)
xlabel('Q oder');
ylabel('Coverage area m^2');
grid on;
xlim(Q([1 end]))
% Why not plot in linear scale when data range is not big?
figure
plot(Q,y,Q,y1)
xlabel('Q oder');
ylabel('Coverage area m^2');
grid on;
% or you should change your data
Q = [16,32,64,128,256];
y = [9 9 9 9 5 ]*0.25;
y1 = [45 37 25 21 5 ]*0.25;
figure
semilogy(Q,y,Q,y1)
xlabel('Q oder');
ylabel('Coverage area m^2');
grid on;
  1 commentaire
Haitham AL Satai
Haitham AL Satai le 21 Sep 2022
@Chunru Thank you dear sir. I just wanted to take the both kind of results semiology and line plot and compare between them.

Connectez-vous pour commenter.

Plus de réponses (1)

Dyuman Joshi
Dyuman Joshi le 21 Sep 2022
The graph is correct. The y axis values are shown in log values as you wanted them to be.
And, for the last two values of Q, the corresponding values are 0 in y and y1. So they are not included for the log values.
If you want to identify the points in x axis, you can try changing the xticks, but it might result in a distorted grid. (You can do the same for yticks as well.)
Q = [16,32,64,128,256,512,1024];
y = [9 9 9 9 5 0 0]*0.25;
y1 = [45 37 25 21 5 0 0]*0.25;
semilogy(Q,y,Q,y1)
xlabel('Q oder');
ylabel('Coverage area m^2');
grid on;
%yticks(union(y,y1))
xticks(Q)
  1 commentaire
Haitham AL Satai
Haitham AL Satai le 21 Sep 2022
@Dyuman Joshi Thank you very much dear sir.

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by