Drawing A Semilog Plot Using Matplotlib


  • A semi log plot is a graph where the data in one axis is on logarithmic scale (either X Axis or Y axis) and the data in the other axis is on normal scale – that is linear scale.
  • On a linear scale as the distance in the axis increases the corresponding   value also increases linearly.
  • On a logarithmic scale as the distance in the axis increases the corresponding   value increases exponentially.
  • Examples of logarithmic scales include growth of microbes, mortality rate due to epidemics and so on.
  • When the values of data vary between very small values and very large values – the linear scale will miss out the smaller values thus conveying a wrong picture of the underlying phenomenon.
  • While using logarithmic scale both smaller valued data as well as bigger valued data can be captured in the plot more accurately to provide a holistic view of the data.
  • The function semilogy() from matplotlib.pyplot module plots the y axis in logarithmic scale and the X axis in linear scale.


import matplotlib.pyplot as plot

import numpy as np


# Year data for the semilog plot

years       = [1900, 1910, 1920, 1930, 1940, 1950, 1960, 1970, 1980, 1990, 2000, 2010, 2017]


# index data - taken at end of every decade - for the semilog plot

indexValues = [68, 81, 71, 244, 151, 200, 615, 809, 824, 2633, 10787, 11577, 20656]


# Display grid

plot.grid(True, which="both")


# Linear X axis, Logarithmic Y axis

plot.semilogy(years, indexValues )




# Provide the title for the semilog plot

plot.title('Y axis in Semilog using Python Matplotlib')


# Give x axis label for the semilog plot



# Give y axis label for the semilog plot

plot.ylabel('Stock market index')


# Display the semilog plot




Copyright 2019 © pythontic.com