I'm using Matplotlib in Python to plot simple x-y datasets. This produces nice-looking graphs, although when I "zoom in" too close on various sections of the plotted graph using the Figure View (which appears when you execute plt.show()
), the x-axis values change from standard number form (1050, 1060, 1070 etc.) to scientific form with exponential notation (e.g. 1, 1.5, 2.0 with the x-axis label given as +1.057e3
).
I'd prefer my figures to retain the simple numbering of the axis, rather than using exponential form. Is there a way I can force Matplotlib to do this?
To prevent scientific notation, we must pass style='plain' in the ticklabel_format method.
The exp() function in Python allows users to calculate the exponential value with the base set to e. Note: e is a Mathematical constant, with a value approximately equal to 2.71828. The math library must be imported for this function to be executed.
You can customize your bar plot further by changing the outline color for each bar to be blue using the argument edgecolor and specifying a color from the matplotlib color options previously discussed. You can adjust the bar fill and edge colors of a bar plot using the arguments color and edgecolor.
The formatting of tick labels is controlled by a Formatter
object, which assuming you haven't done anything fancy will be a ScalerFormatter
by default. This formatter will use a constant shift if the fractional change of the values visible is very small. To avoid this, simply turn it off:
plt.plot(arange(0,100,10) + 1000, arange(0,100,10)) ax = plt.gca() ax.get_xaxis().get_major_formatter().set_useOffset(False) plt.draw()
If you want to avoid scientific notation in general,
ax.get_xaxis().get_major_formatter().set_scientific(False)
Can control this with globally via the axes.formatter.useoffset
rcparam.
You can use a simpler command to turn it off:
plt.ticklabel_format(useOffset=False)
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