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.
Additional Resources
How to Change Font Sizes on a Matplotlib Plot
How to Remove Ticks from Matplotlib Plots