pythonpython-2.7matplotlibplotyticks

How to specify values on y axis of a matplotlib plot


I need to generate a graph using matplotlib like the one in the attached picture. So far I tried it like this:

import matplotlib.pyplot as plt
import numpy as np

x = np.array([0,1,2,3])
y = np.array([20,21,22,23])
my_xticks = ['John','Arnold','Mavis','Matt']
plt.xticks(x, my_xticks)
plt.plot(x, y)
plt.show()

How can I specify a different number of values on the y axis different from the number of values on the x axis? And maybe specify them as an interval with 0.005 difference instead of a list?

desired image


Solution

  • import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.array([0,1,2,3])
    y = np.array([0.650, 0.660, 0.675, 0.685])
    my_xticks = ['a', 'b', 'c', 'd']
    plt.xticks(x, my_xticks)
    plt.yticks(np.arange(y.min(), y.max(), 0.005))
    plt.plot(x, y)
    plt.grid(axis='y', linestyle='-')
    plt.show()
    

    Something like this should work.