How to draw with semiology in MATLAB?

1 次查看(过去 30 天)
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 个评论
Stephen23
Stephen23 2022-9-21
编辑:Stephen23 2022-9-21
"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.

请先登录,再进行评论。

采纳的回答

Chunru
Chunru 2022-9-21
编辑:Chunru 2022-9-21
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 个评论
Haitham AL Satai
Haitham AL Satai 2022-9-21
@Chunru Thank you dear sir. I just wanted to take the both kind of results semiology and line plot and compare between them.

请先登录,再进行评论。

更多回答(1 个)

Dyuman Joshi
Dyuman Joshi 2022-9-21
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)

类别

Help CenterFile Exchange 中查找有关 2-D and 3-D Plots 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by