SoreDakeNoKoto
SoreDakeNoKoto

Reputation: 1185

Last graph marker in matplotlib not showing fully

I'm new to matplotlib. My graph in matplotlib doesn't show the last marker fully. I've tried increasing the figure size and nothing changes. I need to extend the figure so that it shows the last marker and also extend the line past the marker. Here's my code:

    import numpy as np
    import matplotlib.pyplot as plt

    x = np.array([1,2,5,10,15,20])
    y = np.array([0.049,0.080,0.123,0.166,0.209,0.335])

    A = np.vstack([x, np.ones(len(x))]).T
    m, c = np.linalg.lstsq(A, y)[0]

    x = np.array([0,1,2,5,10,15,20])
    y = np.array([c,0.049,0.080,0.123,0.166,0.209,0.335])

    plt.plot(x, y, 'r*', label='Original data', markersize=7)
    plt.plot(x, m*x + c, 'b', label='Fitted line')
    fig = plt.figure(1)
    fig.set_size_inches(9,8)
    fig.suptitle('THE GRAPH OF ABSORBANCE AGAINST CONCENTRATION',fontsize=20)
    plt.xlabel('CONCENTRATION',fontsize=15)
    plt.ylabel('ABSORBANCE',fontsize=15)
    plt.grid()
    fig.savefig('graph.jpg')

Would really appreciate your help.

Upvotes: 1

Views: 2323

Answers (1)

tacaswell
tacaswell

Reputation: 87496

(mostly copied from How to autoscale y axis in matplotlib?)

You want margins doc

ex

ax.margins(y=.1, x=.1)

Also see Add margin when plots run against the edge of the graph

matplotlib 1.3.x will include the rcParam values axes.xmargin and axes.ymargin to set a none-zero margin (code for it is in master already).

Upvotes: 2

Related Questions