Comment puis-je afficher des lignes de quadrillage espacées de façon logarithmique à toutes les tiques sur un graphe log-log en utilisant Matplotlib?

j'essaie de tracer un graphe logarithmique qui montre des lignes de grille espacées logarithmique à toutes les tiques que vous voyez le long du côté inférieur et gauche de la parcelle. J'ai été en mesure de montrer quadrillage à l'aide de matplotlib.pyplot.grid(True), mais ceci montre seulement les lignes de réseau pour moi à la puissance de 10 intervalles. Ainsi, à titre d'exemple, voici ce que je suis actuellement:

Alt text

je voudrais vraiment quelque chose avec des lignes de grille ressemblant plus à ceci, où le le quadrillage ne sont pas régulièrement espacés:

Alt text

Comment puis-je réaliser cela dans Matplotlib?

25
demandé sur Peter Mortensen 2010-08-28 17:30:02

2 réponses

en gros, vous avez juste besoin de mettre le paramètre which="both" dans la commande grid pour qu'elle devienne:

matplotlib.pyplot.grid(True, which="both")

les autres options pour lesquelles sont 'minor' et' major ' qui sont les tiques majeures (qui sont indiquées dans votre graphique) et les tiques mineures qui vous manquent. Si vous voulez des lignes solides, vous pouvez utiliser ls="-" comme paramètre grid().

voici un exemple pour kicks:

import numpy as np
from matplotlib import pyplot as plt

x = np.arange(0,100,.5)
y = 2*x**3

plt.loglog(x,y)
plt.grid(True,which="both",ls="-")
plt.show()

qui génère:

a log-log graph

31
répondu Justin Peel 2010-08-28 16:43:34
majorminor. Je pense que les lignes pleines avec une couleur plus claire peuvent être mieux que les lignes pointillées.

plt.grid(True,which="majorminor",ls="-", color='0.65')

fonctionne pour moi.

4
répondu Pablo Navarro 2014-03-27 12:37:18