Semilogx plot does not plot part of my data

조회 수: 8 (최근 30일)
Pelle Adema
Pelle Adema 2021년 1월 5일
댓글: Mathieu NOE 2021년 1월 5일
Hi,
I'm trying to plot calculated thicknesses of sedimentology flume experiments in a 2D plot with transported distance (x) and thickness (y).
The plot contains multiple lines (one for each grainsizeclass) and are added to the plot using the hold on command.
I want to make the x-axis logaritmic to better visualise the data.
% Plot total lobe geometery as a regular plot
% advplot.sp is an array with sample points.
% LobeThickness.grainsizeclass is the thickness of that grainsizeclass in the y-direction.
F7 = figure('Name','Predicted Lobe Geometry');
plot(advplot.sp,LobeThickness.Total,'g');
hold on
plot(advplot.sp,advplot.Fsilt,'g');
hold on
plot(advplot.sp,advplot.Fvfsd1,'Color','[0.6 1 1]','linewidth',1.5);
hold off
% my code plots up to 17 lines in one figure, I reduced it to 3 for this example
% Plot total lobe geometery as semilogx plot
F8 = figure('Name','Predicted Lobe Geometry');
plot(advplot.sp,LobeThickness.Total,'g');
hold on
plot(advplot.sp,advplot.Fsilt,'g');
hold on
plot(advplot.sp,advplot.Fvfsd1,'Color','[0.6 1 1]','linewidth',1.5);
hold off
set(gca,'FontSize',29','XScale', 'log') % this is the only difference with the plot above
I know from the first plot that the maximum y value should be about 3.3. When making the semilogx plot it seems like part of the data is not plotted, the maximum y value in the plot is now ~ 0.15 m whilst it shouldn't change.
  • I used the same method on other data, here the semilogx plot works fine (max y values are the same for plot (x,y) and semilogx(x,y).
  • I tried adjusting the xlim and ylim values, this does not make a difference
I added a few figures which I think show what goes wrong.
Any help is much appreciated.
  댓글 수: 5
Pelle Adema
Pelle Adema 2021년 1월 5일
As I was preparing the data to send them to you I finally saw what the issue was.
My sample points for the x axes are spaced by 0.05 and interpolated in between the points. As you pointed out the semilogx function cannot work with x is 0. I suppose it can therefore also not interpolate between log 0.05 and log 0, so these data are left out. I get the result that I need by changing the stepsize of my sample points array.
Thanks for helping out, definitely pointed me in the right direction.
Mathieu NOE
Mathieu NOE 2021년 1월 5일
glad you find it !

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

Help CenterFile Exchange에서 2-D and 3-D Plots에 대해 자세히 알아보기

제품


릴리스

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by