Matplotlib's autoscale doesn't seem to work on y axis for small values?
I believe this is a known issue which is still not solved in matplotlib. It is the same as here or here.
Possible solutions for this case would be
Use plot
instead of scatter
.
import matplotlib.pyplot as plt
y= [1.09E-05, 1.63E-05, 2.45E-05, 3.59E-05, 5.09E-05, 6.93E-05, 9.07E-05]
x= [0, 10, 20, 30, 40, 50, 60]
fig3, ax3 = plt.subplots()
ax3.plot(x, y, color='k', marker = "o", ls="")
ax3.autoscale(enable=True, axis="y", tight=False)
plt.show()
Use invisible plot
in addition to scatter
import matplotlib.pyplot as plt
y= [1.09E-05, 1.63E-05, 2.45E-05, 3.59E-05, 5.09E-05, 6.93E-05, 9.07E-05]
x= [0, 10, 20, 30, 40, 50, 60]
fig3, ax3 = plt.subplots()
ax3.scatter(x, y, color='k', marker = "o")
ax3.plot(x, y, color='none')
ax3.relim()
ax3.autoscale_view()
plt.show()
Manually scale the axis using set_ylim
.
import matplotlib.pyplot as plt
y= [1.09E-05, 1.63E-05, 2.45E-05, 3.59E-05, 5.09E-05, 6.93E-05, 9.07E-05]
x= [0, 10, 20, 30, 40, 50, 60]
fig3, ax3 = plt.subplots()
ax3.scatter(x, y, color='k', marker = "o")
dy = (max(y) - min(y))*0.1
ax3.set_ylim(min(y)-dy, max(y)+dy)
plt.show()