How to change the axis scale of a plot using Matplotlib

2 min readMatplotlibPandasPlot
7-Day Challenge

Land Your First Data Science Job

A proven roadmap to prepare for $75K+ entry-level data roles. Perfect for Data Scientist ready to level up their career.

Build portfolios that hiring managers love
Master the Python and SQL essentials to be industry-ready
Practice with real interview questions from tech companies
Access to the $100k/y Data Scientist Cheatsheet

Join thousands of developers who transformed their careers through our challenge. Unsubscribe anytime.

Here is a simple example of a line plot, using the matplotlib library.

import matplotlib.pyplot as plt
import pandas as pd

# We create our dataframe
df = pd.DataFrame(index=range(0,10), data={"col1" : range(0,10)})

fig, axes = plt.subplots(1,1, figsize=(8,6))

# We do a line plot on the axes
axes.plot(df.index, df["col1"])

# Fixing the layout to fit the size
fig.tight_layout()

# Showing the plot
plt.show()
A simple line plot example using Matplotlib

Changing the axis scale

In order to change the axis scale we can use the axes.set_xscale() and axes.set_yscale() methods as in the following example.

The .set_xscale() and set_yscale() only take one mandatory argument which is the scale in which you want to change it into.

You can choose between the following options.

  • linear : Which is the default value of most plots.
  • log
  • symlog
  • logit

Changing y axis to log scale

You can use the following example to change the y axis scale to log.

import matplotlib.pyplot as plt
import pandas as pd

# We create our dataframe
df = pd.DataFrame(index=range(0,10), data={"col1" : range(0,10)})

# We setup our subplots graph on which we are going
# to plot.
fig, axes = plt.subplots(1,1, figsize=(8,6))

# We do a line plot on the axes
axes.plot(df.index, df["col1"])

# Changing the scale into log.
axes.set_yscale('log')

# Fixing the layout to fit the size
fig.tight_layout()

# Showing the plot
plt.show()
Changing the y axis scale to logarithmic

Changing x axis to log scale

Or you also can change the x axis scale like so

import matplotlib.pyplot as plt
import pandas as pd

# We create our dataframe
df = pd.DataFrame(index=range(0,10), data={"col1" : range(0,10)})

# We setup our subplots graph on which we are going
# to plot.
fig, axes = plt.subplots(1,1, figsize=(8,6))

# We do a line plot on the axes
axes.plot(df.index, df["col1"])

# Changing the scale into log.
axes.set_xscale('log')

# Fixing the layout to fit the size
fig.tight_layout()

# Showing the plot
plt.show()
Changing the x axis scale to logarithmic

More on plots

If you want to know more about how to add labels, plot different types of plots, etc... checkout the other articles I wrote on the topic, just here :

Matplotlib - The Python You Need
We gathered the only Python essentials that you will probably ever need.
7-Day Challenge

Land Your First Data Science Job

A proven roadmap to prepare for $75K+ entry-level data roles. Perfect for Data Scientist ready to level up their career.

Build portfolios that hiring managers love
Master the Python and SQL essentials to be industry-ready
Practice with real interview questions from tech companies
Access to the $100k/y Data Scientist Cheatsheet

Join thousands of developers who transformed their careers through our challenge. Unsubscribe anytime.

Free Newsletter

Master Data Science in Days, Not Months 🚀

Skip the theoretical rabbit holes. Get practical data science skills delivered in bite-sized lessons – Approach used by real data scientist. Not bookworms. 📚

Weekly simple and practical lessons
Access to ready to use code examples
Skip the math, focus on results
Learn while drinking your coffee

By subscribing, you agree to receive our newsletter. You can unsubscribe at any time.