loglog
Loglog scale plot
Syntax
Description
Vector and Matrix Data
loglog(
plots
x and ycoordinates using a base10 logarithmic
scale on the xaxis and the yaxis.X
,Y
)
To plot a set of coordinates connected by line segments, specify
X
andY
as vectors of the same length.To plot multiple sets of coordinates on the same set of axes, specify at least one of
X
orY
as a matrix.
loglog(
plots Y
)Y
against
an implicit set of xcoordinates.
If
Y
is a vector, the xcoordinates range from 1 tolength(Y)
.If
Y
is a matrix, the plot contains one line for each column inY
. The xcoordinates range from 1 to the number of rows inY
.
If Y
contains complex numbers,
loglog
plots the imaginary part of Y
versus the
real part of Y
. However, if you specify both X
and
Y
, MATLAB^{®} ignores the imaginary part.
Table Data
loglog(
plots the variables tbl
,xvar
,yvar
)xvar
and yvar
from the table
tbl
. To plot one data set, specify one variable for
xvar
and one variable for yvar
. To plot multiple
data sets, specify multiple variables for xvar
,
yvar
, or both. If both arguments specify multiple variables, they must
specify the same number of variables. (since R2022a)
Additional Options
loglog(
displays the plot
in the target axes. Specify the axes as the first argument in any of the previous
syntaxes.ax
,___)
loglog(___,
specifies
Name,Value
)Line
properties using one or more namevalue arguments. The
properties apply to all the plotted lines. Specify the namevalue arguments after all the
arguments in any of the previous syntaxes. For a list of properties, see Line Properties.
p = loglog(___)
returns a Line
object or an array of Line
objects. Use p
to modify
properties of the plot after creating it. For a list of properties, see Line Properties.
Examples
Plot One Line
Define x
as a vector of 50 logarithmically spaced numbers on the interval [${10}^{1},{10}^{2}$]. Define y
as ${2}^{\mathit{x}}$. Then plot x
and y
, and call the grid
function to show the grid lines.
x = logspace(1,2);
y = 2.^x;
loglog(x,y)
grid on
Plot Multiple Lines
Create a vector of xcoordinates and two vectors of ycoordinates. Plot two lines by passing commaseparated xy pairs to loglog
.
x = logspace(1,2);
y1 = 10.^x;
y2 = 1./10.^x;
loglog(x,y1,x,y2)
grid on
Alternatively, you can create the same plot with one xy pair by specifying y as a matrix: loglog(x,[y1;y2])
.
Specify Axis Labels and Tick Values
Create a set of x and ycoordinates and display them in a loglog plot.
x = logspace(1,2,10000); y = 5 + 3*sin(x); loglog(x,y)
Call the yticks
function to position the yaxis tick values at whole number increments along the yaxis. Then create x and yaxis labels by calling the xlabel
and ylabel
functions.
yticks([3 4 5 6 7]) xlabel('x') ylabel('5 + 3 sin(x)')
Plot Points as Markers Without Lines
Create a set of x and ycoordinates and display them in a loglog plot. Specify the line style as 's'
to display square markers without connecting lines. Specify the marker fill color as the RGB triplet [0 0.447 0.741]
, which corresponds to a dark shade of blue.
x = logspace(1,2,20); y = 10.^x; loglog(x,y,'s','MarkerFaceColor',[0 0.447 0.741]) grid on
Add a Legend
Create two sets of x and ycoordinates and display them in a loglog plot. Display a legend in the upper left corner of the plot by calling the legend
function and specifying the location as 'northwest'
.
x = logspace(1,2,10000); y1 = 5 + 3*sin(x/4); y2 = 5  3*sin(x/4); loglog(x,y1,x,y2,'') legend('Signal 1','Signal 2','Location','northwest')
Specify yCoordinates Only
When you specify only one coordinate vector, loglog
plots those coordinates against the values 1:length(y)
. For example, define y
as a vector of 6 values between 0.001
and 100
. Create a loglog plot of y.
y = [0.001 0.01 0.1 1 10 100];
loglog(y)
grid on
If you specify y
as a matrix, the columns of y are plotted against the values 1:size(y,1)
. For example, define y
as a 5by3 matrix and pass it to the loglog
function. The resulting plot contains 3 lines, each of which has xcoordinates that range from 1
to 5
.
y = [0.0010 0.0100 0.1000
0.0100 0.1000 1.0000
0.1000 1.0000 10.0000
1.0000 10.5000 100.0000
10.0000 100.0000 1000.0000];
loglog(y)
grid on
Plot Coordinates from a Table
Since R2022a
A convenient way to plot data from a table is to pass the table to the loglog
function and specify the variables to plot.
Create a table containing two variables. Then display the first three rows of the table.
Input = logspace(1,2)'; Output = 10.^Input; tbl = table(Input,Output); head(tbl,3)
Input Output _______ ______ 0.1 1.2589 0.11514 1.3036 0.13257 1.357
Plot the Input
variable on the xaxis and the Output
variable on the yaxis. Return the Line
object as p
, and turn the axes grid on. Notice that the axis labels match the variable names.
p = loglog(tbl,"Input","Output"); grid on
To modify aspects of the line, set the LineStyle
, Color
, and Marker
properties on the Line
object. For example, change the line to a red dotted line with point markers.
p.LineStyle = ":"; p.Color = "red"; p.Marker = ".";
Plot Multiple Table Variables on One Axis
Since R2022a
Create a table containing three variables. Then display the first three rows in the table.
Input = logspace(1,2)'; Output1 = 10.^Input; Output2 = 1./10.^Input; tbl = table(Input,Output1,Output2); head(tbl,3)
Input Output1 Output2 _______ _______ _______ 0.1 1.2589 0.79433 0.11514 1.3036 0.76711 0.13257 1.357 0.73693
Plot the Input
variable on the xaxis and the Output1
and Output2
variables on the yaxis. Add a legend. Notice that the legend labels match the variable names.
loglog(tbl,"Input",["Output1" "Output2"]) grid on legend
Specify Target Axes
Create a tiled chart layout in the 'flow'
tile arrangement, so that the axes fill the available space in the layout. Next, call the nexttile
function to create an axes object and return it as ax1
. Then display a loglog plot by passing ax1
to the loglog
function.
tiledlayout('flow')
ax1 = nexttile;
x = logspace(1,2);
y1 = 10.^x;
loglog(ax1,x,y1)
Repeat the process to create a second axes object and a second loglog plot.
ax2 = nexttile; y2 = 1./10.^x; loglog(ax2,x,y2)
Change Line Characteristics After Plotting
Create a loglog plot containing two lines, and return the line objects in the variable lg
.
x = logspace(1,2); y1 = 10.^x; y2 = 1./10.^x; lg = loglog(x,y1,x,y2);
Change the width of the first line to 2
, and change the color of the second line to purple.
lg(1).LineWidth = 2; lg(2).Color = [0.4 0 1];
Input Arguments
X
— xcoordinates
scalar  vector  matrix
xcoordinates, specified as a scalar, vector, or matrix. The size
and shape of X
depends on the shape of your data and the type of plot
you want to create. This table describes the most common situations.
Type of Plot  How to Specify Coordinates 

Single point  Specify loglog(1,2,'o') 
One set of points  Specify loglog([1 2 3],[4; 5; 6]) 
Multiple sets of points (using vectors)  Specify consecutive pairs of loglog([1 2 3],[4 5 6],[1 2 3],[7 8 9]) 
Multiple sets of points (using matrices)  If all the sets share the same x or ycoordinates, specify the shared coordinates as a vector and the other coordinates as a matrix. The length of the vector must match one of the dimensions of the matrix. For example: loglog([1 2 3],[4 5 6; 7 8 9]) loglog plots one line for each
column in the matrix. Alternatively, specify
loglog([1 2 3; 4 5 6],[7 8 9; 10 11 12]) 
loglog
might exclude coordinates in some cases:
If the coordinates include positive and negative values, only the positive values are displayed.
If the coordinates are all negative, all of the values are displayed on a log scale with the appropriate sign.
Zero values are not displayed.
Data Types: single
 double
 int8
 int16
 int32
 int64
 uint8
 uint16
 uint32
 uint64
Y
— ycoordinates
scalar  vector  matrix
ycoordinates, specified as a scalar, vector, or matrix. The size
and shape of Y
depends on the shape of your data and the type of plot
you want to create. This table describes the most common situations.
Type of Plot  How to Specify Coordinates 

Single point  Specify loglog(1,2,'o') 
One set of points  Specify loglog([1 2 3],[4; 5; 6]) 
Multiple sets of points (using vectors)  Specify consecutive pairs of loglog([1 2 3],[4 5 6],[1 2 3],[7 8 9]) 
Multiple sets of points (using matrices)  If all the sets share the same x or ycoordinates, specify the shared coordinates as a vector and the other coordinates as a matrix. The length of the vector must match one of the dimensions of the matrix. For example: loglog([1 2 3],[4 5 6; 7 8 9]) loglog plots one line for each
column in the matrix.Alternatively, specify
loglog([1 2 3; 4 5 6],[7 8 9; 10 11 12]) 
loglog
might exclude coordinates in some cases:
If the coordinates include positive and negative values, only the positive values are displayed.
If the coordinates are all negative, all of the values are displayed on a log scale with the appropriate sign.
Zero values are not displayed.
Data Types: single
 double
 int8
 int16
 int32
 int64
 uint8
 uint16
 uint32
 uint64
LineSpec
— Line style, marker, and color
string  character vector
Line style, marker, and color, specified as a string or character vector containing symbols. The symbols can appear in any order. You do not need to specify all three characteristics (line style, marker, and color). For example, if you omit the line style and specify the marker, then the plot shows only the marker and no line.
Example: "or"
is a red dashed line with circle markers
Line Style  Description  Resulting Line 

""  Solid line 

""  Dashed line 

":"  Dotted line 

"."  Dashdotted line 

Marker  Description  Resulting Marker 

"o"  Circle 

"+"  Plus sign 

"*"  Asterisk 

"."  Point 

"x"  Cross 

"_"  Horizontal line 

""  Vertical line 

"square"  Square 

"diamond"  Diamond 

"^"  Upwardpointing triangle 

"v"  Downwardpointing triangle 

">"  Rightpointing triangle 

"<"  Leftpointing triangle 

"pentagram"  Pentagram 

"hexagram"  Hexagram 

Color Name  Short Name  RGB Triplet  Appearance 

"red"  "r"  [1 0 0] 

"green"  "g"  [0 1 0] 

"blue"  "b"  [0 0 1] 

"cyan"
 "c"  [0 1 1] 

"magenta"  "m"  [1 0 1] 

"yellow"  "y"  [1 1 0] 

"black"  "k"  [0 0 0] 

"white"  "w"  [1 1 1] 

tbl
— Source table
table  timetable
Source table containing the data to plot, specified as a table or a timetable.
xvar
— Table variables containing xcoordinates
character vector  string array  cell array  pattern  numeric scalar or vector  logical vector  vartype()
Table variables containing the xcoordinates, specified using one of the indexing schemes from the table.
Indexing Scheme  Examples 

Variable names:


Variable index:


Variable type:


The table variables you specify can contain any numeric values. However,
loglog
might exclude negative and zero values from the plot in
the same way as it does when you specify X
and
Y
as vectors containing negative or zero values.
If xvar
and yvar
both specify multiple
variables, the number of variables must be the same.
Example: loglog(tbl,["x1","x2"],"y")
specifies the table variables
named x1
and x2
for the
xcoordinates.
Example: loglog(tbl,2,"y")
specifies the second variable for the
xcoordinates.
Example: loglog(tbl,vartype("numeric"),"y")
specifies all numeric
variables for the xcoordinates.
yvar
— Table variables containing ycoordinates
character vector  string array  cell array  pattern  numeric scalar or vector  logical vector  vartype()
Table variables containing the ycoordinates, specified using one of the indexing schemes from the table.
Indexing Scheme  Examples 

Variable names:


Variable index:


Variable type:


The table variables you specify can contain any numeric values. However,
loglog
might exclude negative and zero values from the plot in
the same way as it does when you specify X
and
Y
as vectors containing negative or zero values.
If xvar
and yvar
both specify multiple
variables, the number of variables must be the same.
Example: loglog(tbl,"x",["y1","y2"])
specifies the table variables
named y1
and y2
for the
ycoordinates.
Example: loglog(tbl,"x",2)
specifies the second variable for the
ycoordinates.
Example: loglog(tbl,"x",vartype("numeric"))
specifies all numeric
variables for the ycoordinates.
ax
— Target axes
Axes
object
Target axes, specified as an Axes
object. If you do not specify
the axes and if the current axes is Cartesian, then loglog
uses the
current axes.
NameValue Arguments
Specify optional pairs of arguments as
Name1=Value1,...,NameN=ValueN
, where Name
is
the argument name and Value
is the corresponding value.
Namevalue arguments must appear after other arguments, but the order of the
pairs does not matter.
Before R2021a, use commas to separate each name and value, and enclose
Name
in quotes.
Example: loglog([1 2],[3 4],'Color','red')
specifies a red line for
the plot.
Note
The properties listed here are only a subset. For a complete list, see Line Properties.
Color
— Color
[0 0.4470 0.7410]
(default)  RGB triplet  hexadecimal color code  'r'
 'g'
 'b'
 ...
Color, specified as an RGB triplet, a hexadecimal color code, a color name, or a
short name. The color you specify sets the line color. It also sets the marker edge
color when the MarkerEdgeColor
property is set to
'auto'
.
For a custom color, specify an RGB triplet or a hexadecimal color code.
An RGB triplet is a threeelement row vector whose elements specify the intensities of the red, green, and blue components of the color. The intensities must be in the range
[0,1]
, for example,[0.4 0.6 0.7]
.A hexadecimal color code is a character vector or a string scalar that starts with a hash symbol (
#
) followed by three or six hexadecimal digits, which can range from0
toF
. The values are not case sensitive. Therefore, the color codes"#FF8800"
,"#ff8800"
,"#F80"
, and"#f80"
are equivalent.
Alternatively, you can specify some common colors by name. This table lists the named color options, the equivalent RGB triplets, and hexadecimal color codes.
Color Name  Short Name  RGB Triplet  Hexadecimal Color Code  Appearance 

"red"  "r"  [1 0 0]  "#FF0000"  
"green"  "g"  [0 1 0]  "#00FF00"  
"blue"  "b"  [0 0 1]  "#0000FF"  
"cyan"
 "c"  [0 1 1]  "#00FFFF"  
"magenta"  "m"  [1 0 1]  "#FF00FF"  
"yellow"  "y"  [1 1 0]  "#FFFF00"  
"black"  "k"  [0 0 0]  "#000000"  
"white"  "w"  [1 1 1]  "#FFFFFF"  
"none"  Not applicable  Not applicable  Not applicable  No color 
Here are the RGB triplets and hexadecimal color codes for the default colors MATLAB uses in many types of plots.
RGB Triplet  Hexadecimal Color Code  Appearance 

[0 0.4470 0.7410]  "#0072BD"  
[0.8500 0.3250 0.0980]  "#D95319"  
[0.9290 0.6940 0.1250]  "#EDB120"  
[0.4940 0.1840 0.5560]  "#7E2F8E"  
[0.4660 0.6740 0.1880]  "#77AC30"  
[0.3010 0.7450 0.9330]  "#4DBEEE"  
[0.6350 0.0780 0.1840]  "#A2142F" 
LineWidth
— Line width
0.5
(default)  positive value
Line width, specified as a positive value in points, where 1 point = 1/72 of an inch. If the line has markers, then the line width also affects the marker edges.
The line width cannot be thinner than the width of a pixel. If you set the line width to a value that is less than the width of a pixel on your system, the line displays as one pixel wide.
MarkerSize
— Marker size
6
(default)  positive value
Marker size, specified as a positive value in points, where 1 point = 1/72 of an inch.
MarkerEdgeColor
— Marker outline color
"auto"
(default)  RGB triplet  hexadecimal color code  "r"
 "g"
 "b"
 ...
Marker outline color, specified as "auto"
, an RGB triplet, a
hexadecimal color code, a color name, or a short name. The default value of
"auto"
uses the same color as the Color
property.
For a custom color, specify an RGB triplet or a hexadecimal color code.
An RGB triplet is a threeelement row vector whose elements specify the intensities of the red, green, and blue components of the color. The intensities must be in the range
[0,1]
, for example,[0.4 0.6 0.7]
.A hexadecimal color code is a character vector or a string scalar that starts with a hash symbol (
#
) followed by three or six hexadecimal digits, which can range from0
toF
. The values are not case sensitive. Therefore, the color codes"#FF8800"
,"#ff8800"
,"#F80"
, and"#f80"
are equivalent.
Alternatively, you can specify some common colors by name. This table lists the named color options, the equivalent RGB triplets, and hexadecimal color codes.
Color Name  Short Name  RGB Triplet  Hexadecimal Color Code  Appearance 

"red"  "r"  [1 0 0]  "#FF0000"  
"green"  "g"  [0 1 0]  "#00FF00"  
"blue"  "b"  [0 0 1]  "#0000FF"  
"cyan"
 "c"  [0 1 1]  "#00FFFF"  
"magenta"  "m"  [1 0 1]  "#FF00FF"  
"yellow"  "y"  [1 1 0]  "#FFFF00"  
"black"  "k"  [0 0 0]  "#000000"  
"white"  "w"  [1 1 1]  "#FFFFFF"  
"none"  Not applicable  Not applicable  Not applicable  No color 
Here are the RGB triplets and hexadecimal color codes for the default colors MATLAB uses in many types of plots.
RGB Triplet  Hexadecimal Color Code  Appearance 

[0 0.4470 0.7410]  "#0072BD"  
[0.8500 0.3250 0.0980]  "#D95319"  
[0.9290 0.6940 0.1250]  "#EDB120"  
[0.4940 0.1840 0.5560]  "#7E2F8E"  
[0.4660 0.6740 0.1880]  "#77AC30"  
[0.3010 0.7450 0.9330]  "#4DBEEE"  
[0.6350 0.0780 0.1840]  "#A2142F" 
MarkerFaceColor
— Marker fill color
"none"
(default)  "auto"
 RGB triplet  hexadecimal color code  "r"
 "g"
 "b"
 ...
Marker fill color, specified as "auto"
, an RGB triplet, a hexadecimal
color code, a color name, or a short name. The "auto"
option uses the
same color as the Color
property of the parent axes. If you specify
"auto"
and the axes plot box is invisible, the marker fill color is
the color of the figure.
For a custom color, specify an RGB triplet or a hexadecimal color code.
An RGB triplet is a threeelement row vector whose elements specify the intensities of the red, green, and blue components of the color. The intensities must be in the range
[0,1]
, for example,[0.4 0.6 0.7]
.A hexadecimal color code is a character vector or a string scalar that starts with a hash symbol (
#
) followed by three or six hexadecimal digits, which can range from0
toF
. The values are not case sensitive. Therefore, the color codes"#FF8800"
,"#ff8800"
,"#F80"
, and"#f80"
are equivalent.
Alternatively, you can specify some common colors by name. This table lists the named color options, the equivalent RGB triplets, and hexadecimal color codes.
Color Name  Short Name  RGB Triplet  Hexadecimal Color Code  Appearance 

"red"  "r"  [1 0 0]  "#FF0000"  
"green"  "g"  [0 1 0]  "#00FF00"  
"blue"  "b"  [0 0 1]  "#0000FF"  
"cyan"
 "c"  [0 1 1]  "#00FFFF"  
"magenta"  "m"  [1 0 1]  "#FF00FF"  
"yellow"  "y"  [1 1 0]  "#FFFF00"  
"black"  "k"  [0 0 0]  "#000000"  
"white"  "w"  [1 1 1]  "#FFFFFF"  
"none"  Not applicable  Not applicable  Not applicable  No color 
Here are the RGB triplets and hexadecimal color codes for the default colors MATLAB uses in many types of plots.
RGB Triplet  Hexadecimal Color Code  Appearance 

[0 0.4470 0.7410]  "#0072BD"  
[0.8500 0.3250 0.0980]  "#D95319"  
[0.9290 0.6940 0.1250]  "#EDB120"  
[0.4940 0.1840 0.5560]  "#7E2F8E"  
[0.4660 0.6740 0.1880]  "#77AC30"  
[0.3010 0.7450 0.9330]  "#4DBEEE"  
[0.6350 0.0780 0.1840]  "#A2142F" 
Tips
Use
NaN
orInf
to create breaks in the lines. For example, this code plots a line with a break betweeny=2
andy=4
.loglog([1 2 3 4 5],[1 2 NaN 4 5])
The
loglog
function uses colors and line styles based on theColorOrder
andLineStyleOrder
properties of the axes.loglog
cycles through the colors with the first line style. Then, it cycles through the colors again with each additional line style.You can change the colors and the line styles after plotting by setting the
ColorOrder
orLineStyleOrder
properties on the axes. You can also call thecolororder
function to change the color order for all the axes in the figure.
Algorithms
The loglog
function plots coordinates on a log scale by setting the
XScale
and YScale
properties of the axes to
'log'
. However, if the axes hold
state is 'on'
before you call
loglog
, those properties do not change, and the plot might display on a
linear or semilog scale.
Extended Capabilities
GPU Arrays
Accelerate code by running on a graphics processing unit (GPU) using Parallel Computing Toolbox™.
Usage notes and limitations:
This function accepts GPU arrays, but does not run on a GPU.
For more information, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Distributed Arrays
Partition large arrays across the combined memory of your cluster using Parallel Computing Toolbox™.
Usage notes and limitations:
This function operates on distributed arrays, but executes in the client MATLAB.
For more information, see Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).
Version History
Introduced before R2006aR2022b: Plots created with tables preserve special characters in axis and legend labels
When you pass a table and one or more variable names to the loglog
function, the axis and legend labels now display any special characters that are included in the table variable names, such as underscores. Previously, special characters were interpreted as TeX or LaTeX characters.
For example, if you pass a table containing a variable named Sample_Number
to the loglog
function, the underscore appears in the axis and
legend labels. In R2022a and earlier releases, the underscores are interpreted as
subscripts.
Release  Label for Table Variable "Sample_Number" 

R2022b 

R2022a 

To display axis and legend labels with TeX or LaTeX formatting, specify the labels manually.
For example, after plotting, call the xlabel
or
legend
function with the desired label strings.
xlabel("Sample_Number") legend(["Sample_Number" "Another_Legend_Label"])
R2022a: Pass tables directly to loglog
Create plots by passing a table to the loglog
function followed by the variables you want to plot. When you specify your data as a table, the axis labels and the legend (if present) are automatically labeled using the table variable names.
Open Example
You have a modified version of this example. Do you want to open this example with your edits?
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
 América Latina (Español)
 Canada (English)
 United States (English)
Europe
 Belgium (English)
 Denmark (English)
 Deutschland (Deutsch)
 España (Español)
 Finland (English)
 France (Français)
 Ireland (English)
 Italia (Italiano)
 Luxembourg (English)
 Netherlands (English)
 Norway (English)
 Österreich (Deutsch)
 Portugal (English)
 Sweden (English)
 Switzerland
 United Kingdom (English)