Matplotlib Is a library in Python and it is a numerical – mathematical extension for the NumPy library. Pyplot Is a state-based interface to a Matplotlib module which provides a MATLAB-like interface.
matplotlib.pyplot.yscale() in Python
The matplotlib.pyplot.yscale() function in pyplot module of matplotlib library is used to set the y-axis scale.
Syntax: matplotlib.pyplot.yscale(value, **kwargs)
Parameters:
value = { “linear”, “log”, “symlog”, “logit”, … }
These are various axis scale to apply.
**kwargs = Different keyword arguments are accepted, depending on the scale (matplotlib.scale.LinearScale, LogScale, SymmetricalLogScale, LogitScale)
Example 1:
Python3
import numpy as np import pandas as pd import matplotlib.pyplot as plt import time % matplotlib inline # Example 1 y = np.random.randn( 50 ) y = y[(y > 0 ) & (y < 1 )] y.sort() x = np.arange( len (y)) # plot with various axes scales plt.figure() # linear plt.subplot( 221 ) plt.plot(x, y) plt.yscale( 'linear' ) plt.title( 'linear' ) plt.grid( True ) # log plt.subplot( 222 ) plt.plot(x, y) plt.yscale( 'log' ) plt.title( 'log' ) plt.grid( True ) plt.show() |
Output:
Example 2:
Python3
import numpy as np import pandas as pd import matplotlib.pyplot as plt import time % matplotlib inline # Example 2 # useful for `logit` scale from matplotlib.ticker import NullFormatter # Fixing random state for reproducibility np.random.seed( 100 ) # make up some data in the # interval ]0, 1[ y = np.random.normal(loc = 0.5 , scale = 0.4 , size = 1000 ) y = y[(y > 0 ) & (y < 1 )] y.sort() x = np.arange( len (y)) # plot with various axes scales plt.figure() # symmetric log plt.subplot( 221 ) plt.plot(x, y - y.mean()) plt.yscale( 'symlog' , linthreshy = 0.01 ) plt.title( 'symlog' ) plt.grid( True ) # logit plt.subplot( 222 ) plt.plot(x, y) plt.yscale( 'logit' ) plt.title( 'logit' ) plt.grid( True ) plt.gca().yaxis.set_minor_formatter(NullFormatter()) # Adjust the subplot layout, because # the logit one may take more space # than usual, due to y-tick labels like "1 - 10^{-3}" plt.subplots_adjust(top = 0.80 , bottom = 0.03 , left = 0.15 , right = 0.92 , hspace = 0.34 ,wspace = 0.45 ) plt.show() |
Output: