Syntax of semilogx, semilogy, loglog

Hi,
I just realized that the following syntaxes are not valid
semilogx(X1,Y1,LineSpec,'PropertyName',PropertyValue)
semilogy(X1,Y1,LineSpec,'PropertyName',PropertyValue)
loglog(X1,Y1,LineSpec,'PropertyName',PropertyValue)
whereas
plot(X1,Y1,LineSpec,'PropertyName',PropertyValue)
is valid. Shouldn't this be fixed for consistency?

 Accepted Answer

Hi Nicolas, Can you give an example?
x = logspace(-1,2);
loglog(x,exp(x),'-s','linewidth',2)
figure;
x = 0:0.1:10;
semilogx(10.^x,x,'r--','linewidth',2)

5 Comments

My mistake, sorry. Got an error due to another bug and thought its due to loglog, since the above syntax is not documented.
Glad to hear it's working. Just out of curiousity, which version of MATLAB are you using that the above is not documented?
I see this documented for loglog all the way back to at least 2005.
I am using using R2011a. I was referring to the help entry of loglog. There it sais:
Syntax
loglog(Y)
loglog(X1,Y1,...)
loglog(X1,Y1,LineSpec,...)
loglog(...,'PropertyName',PropertyValue,...)
h = loglog(...)
On the other hand for plot it sais:
Syntax
plot(Y)
plot(X1,Y1,...,Xn,Yn)
plot(X1,Y1,LineSpec,...,Xn,Yn,LineSpec)
plot(X1,Y1,LineSpec,'PropertyName',PropertyValue)
plot(axes_handle,X1,Y1,LineSpec,'PropertyName',PropertyValue)
h = plot(X1,Y1,LineSpec,'PropertyName',PropertyValue)
Guess I wasn't interpreting the ... properly.
Right:
loglog(X1,Y1,LineSpec,....)
means:
x = logspace(-1,2);
loglog(x,exp(x),'-or')
or some other valid linespec (the 'or' is a linespec)
loglog(...,'PropertyName',PropertyValue,...)
means:
loglog(x,exp(x),'linewidth',2,'LineStyle','-.');
or some valid 'PropertyName',PropertyValue combination.
Glad it's working!

Sign in to comment.

More Answers (2)

Things are working ok... There is no inconsistency or I was not able to understand you.. Please check the following code and rephrase the question so that I would understand better :-
clc
clear all
t= 0:0.001:2;
plot(t,exp(t),'--.r','LineWidth',2);
figure(2);
semilogx(t,exp(t),'*k','LineWidth',2);
figure(3);
semilogy(t,exp(t),'-.b','LineWidth',2);
figure(4);
loglog(t,exp(t),'--y','LineWidth',2);
If suppose we have to make the linewidth=3,
loglog(x,y,'linewidth',3) is wrong
the right syntax is
loglog(x,y,"Linewidth",3)

1 Comment

loglog accepts the name of a name-value pair argument as a char vector or as a string perfectly fine when I tried it in release R2020a. Can you clarify why you believe the syntax with the name specified as a char vector is wrong? If you're seeing an error can you show all of the error message (all the text displayed in red?)
x = 1:10;
y = x.^2;
figure
loglog(x, y, 'linewidth', 3)
figure
loglog(x, y, "linewidth", 3)

Sign in to comment.

Categories

Find more on Mathematics in Help Center and File Exchange

Tags

Asked:

on 26 Sep 2011

Commented:

on 23 Jun 2020

Community Treasure Hunt

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

Start Hunting!