Table of Contents
To create matplotlib plots with log scales, first import the necessary libraries, including matplotlib. Then, use the “plt.yscale(‘log’)” function to set the y-axis to a logarithmic scale. Next, use the “plt.plot()” function to plot the desired data. Finally, use “plt.show()” to display the plot. This will create a plot with a logarithmic scale on the y-axis, allowing for better visualization of data with large ranges.
Create Matplotlib Plots with Log Scales
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