Reputation: 1185
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
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