Selon le documentation, ax.autoscale(tight=True)
devraitaxe matplotlib ('serré') ne fonctionne pas?
Si cela est vrai, vue fixer des limites aux limites de données;
Avec ax.axis('tight')
étant similaire:
'serré' Les limites fixées de telle sorte que toutes les données sont affichées
(sic)
Et nous voyons même que cela fonctionne dans les captures d'écran de this question. Mais peu importe ce que j'essaie, il ne semble pas fonctionner avec l'exemple simple suivant. Voici ce que je tapais dans jupyter-qtconsole
:
In [27]: f, ax = plt.subplots(1)
In [28]: ax.plot([0, 1], [1, 0])
Out[28]: [<matplotlib.lines.Line2D at 0x825abf0>]
In [29]: ax.axis('tight')
Out[29]: (-0.050000000000000003, 1.05, -0.050000000000000003, 1.05)
In [30]: ax.autoscale(tight=True)
In [31]: plt.axis('tight')
Out[31]: (-0.050000000000000003, 1.05, -0.050000000000000003, 1.05)
In [32]: plt.autoscale(tight=True)
In [33]: ax.plot([0, 1], [1, 0])
Out[33]: [<matplotlib.lines.Line2D at 0x825a4d0>]
In [34]: ax.autoscale(enable=True, axis='x', tight=True)
Tout au long de ces commandes, les limites de l'intrigue ne changent pas:
Qu'est-ce que je pourrais faire mal?
Cela fonctionne. J'ai quitté 'mpl.rcParams ['axes.autolimit_mode']' à sa valeur par défaut de ''data'', qui correspond au cadre aux limites des données, plutôt qu'au prochain tick (c'est-à-dire' 'round_numbers' '). En outre, je dirais que cela va un peu à l'encontre du bon sens que demander spécifiquement 'axis ('tight')' ne réduit pas ces marges, ce qui [semble possible sur une base par plot] (https: //stackoverflow.com/a/41748745/1143274). –