Table of Contents
To create a Matplotlib plot with log scale, you must first create an instance of a figure and an axes object, and then set the scale of the axes to ‘log’. You can then use Matplotlib functions to plot your data on the log scale. You can also set the base of the log scale to be any number, allowing you to customize your plot. Finally, you can customize the plot further by adding labels, titles, and other features.
Often you may want to create Matplotlib plots with log scales for one or more axes. Fortunately Matplotlib offers the following three functions for doing so:
- Matplotlib.pyplot.semilogx() – Make a plot with log scaling on the x-axis.
- Matplotlib.pyplot.semilogy() – Make a plot with log scaling on the y-axis.
- Matplotlib.pyplot.loglog() – Make a plot with log scaling on both axes.
This tutorial explains how to use each of these functions in practice.
Example 1: Log Scale for the X-Axis
Suppose we create a line chart for the following data:
import matplotlib.pyplot as plt #create data x = [1, 8, 190, 1400, 6500] y = [1, 2, 3, 4, 5] #create line chart of data plt.plot(x,y)
We can use the .semilogx() function to convert the x-axis to a log scale:
plt.semilogx()
Note that the y-axis is the exact same, but the x-axis is now on a log scale.
Example 2: Log Scale for the Y-Axis
Suppose we create a line chart for the following data:
import matplotlib.pyplot as plt #create data x = [1, 2, 3, 4, 5] y = [1, 8, 190, 1400, 6500] #create line chart of data plt.plot(x,y)
We can use the .semilogy() function to convert the y-axis to a log scale:
plt.semilogy()
Note that the x-axis is the exact same, but the y-axis is now on a log scale.
Example 3: Log Scale for Both Axes
Suppose we create a line chart for the following data:
import matplotlib.pyplot as plt #create data x = [10, 200, 3000, 40000, 500000] y = [30, 400, 5000, 60000, 750000] #create line chart of data plt.plot(x,y)
We can use the .loglog() function to convert the y-axis to a log scale:
plt.loglog(x, y)
Note that both axes are now on a log scale.
How to Change Font Sizes on a Matplotlib Plot
How to Remove Ticks from Matplotlib Plots