Semilogx plot does not plot part of my data

7 次查看(过去 30 天)
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.

请先登录,再进行评论。

回答(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