For some reason, plt.autoscale does not seem to work for very small values (i.e. something like 1E-05). Everything is just displayed close to the zero axis in the graph as shown.
Any ideas where I am going wrong here?
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 = plt.gca()
plt.autoscale(enable=True, axis="y", tight=False)
plt.show()
If we want to change the font size of the axis labels, we can use the parameter “fontsize” and set it your desired number.
To change the range of X and Y axes, we can use xlim() and ylim() methods.
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()
Just to add an update here to anyone who finds this post in the future - it has now been resolved in matplotlib 3.2.1. Just update your package and it should work.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With