rulisastra
rulisastra

Reputation: 391

Matplotlib value on top left and remove it

I have this array with 10 values.

this plot

I get that my array has so many numbers behind the comma. But I notice there's value on top left corner.

Anyone knows what is it and how remove it?

thank you in advance.

the array:

0.00409960926442099
0.00409960926442083
0.004099609264420652
0.004099609264420653
0.004099609264420585
0.0040996092644205884
0.004099609264420545
0.004099609264420517
0.004099609264420514
0.004099609264420513

Upvotes: 5

Views: 3057

Answers (1)

JohanC
JohanC

Reputation: 80279

As your values are all very close together, the usual ticks would all be the same. For example, if you use '%.6f' as the tick format, you'd get '0.00410' for each of the ticks. That would not be very helpful. Therefore, matplotlib puts a base number '4.099609264420e-3' together with an offset '1e-16' to label the yticks. So, every real ytick would be the base plus the offset times the tick-value.

To get rid of these strange numbers, you have to re-evaluate what exactly you want to achieve with your plot. If you'd set some y-limits (e.g. plt.ylim(0.004099, 0.004100)), you'd get a quite dull horizontal line. Note that 1e-16 is very close to the maximum precision you can get using standard floating-point math.

Here is some demo code to show how it would look with the '%.6f' format:

import matplotlib.pyplot as plt
import matplotlib.ticker as mtick

plt.plot([0.00409960926442099, 0.00409960926442083, 0.004099609264420652, 0.004099609264420653,
          0.004099609264420585, 0.0040996092644205884, 0.004099609264420545, 0.004099609264420517,
          0.004099609264420514, 0.004099609264420513])
plt.gca().yaxis.set_major_formatter(mtick.FormatStrFormatter('%.6f'))
plt.tight_layout()
plt.show()

ticks with 6 digits

Upvotes: 6

Related Questions