Comment puis-je changer le format de l'étiquette d'axe en matplotlib
Si j'ai tracé un journal échelle graphique, matplotlib me donne l'agréable à regarder entrées 105, 106, ...
Pour des raisons de lisibilité, je voudrais cependant préférer la forme 1e5, 1e6, ...
Puis-je régler directement les propriétés de l'axe de se comporter de cette façon?
J'ai plutôt moche hack serait:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(1, 40, 100);
y = np.linspace(1, 5, 100);
# Actually plot the exponential values
plt.plot(x, 10**y)
ax = plt.gca()
ax.set_yscale('log')
# Rewrite the y labels
y_labels = ax.get_yticks()
ax.set_yticklabels(['1e%i' % np.round(np.log(y)/np.log(10)) for y in y_labels])
plt.show()
Mais il doit sûrement y avoir une meilleure façon.
- Il y a probablement une certaine façon avec
ticker
etFormatStrFormatter
Vous devez vous connecter pour publier un commentaire.
Vous utilisez
ticker.FormatStrFormatter('%0.0 e')
. Ce formats chaque nombre avec le format de la chaîne de%0.0e
qui représente des flotteurs en utilisant la notation exponentielle:rendements
1e+04
à1e4
?ticker.FuncFormatter
.