2010-08-28 5 views
24

Ich versuche, ein Log-Log-Diagramm zu plotten, das logarithmisch beabstandete Gitterlinien bei allen Ticks zeigt, die Sie auf der unteren und linken Seite des Diagramms sehen. Ich konnte einige Gitternetzlinien mit matplotlib.pyplot.grid(True) zeigen, aber das zeigt nur Gitterlinien für mich bei der Kraft von 10 Intervallen. So als Beispiel, hier ist das, was ich immer ich zur Zeit:Wie zeige ich logarithmisch beabstandete Gitterlinien bei allen Ticks in einem logarithmischen Plot mit Matplotlib an?

Alt text

Ich mag wirklich etwas mit Gitterlinien mehr so ​​aussehen, wo die Gitternetzlinien sind nicht alle gleichmäßiger Abstand:

Alt text

Wie würde ich das in Matplotlib erreichen?

Antwort

28

Grundsätzlich müssen Sie nur in dem Parameter which="both" im Raster Befehl setzen, so dass es zu:

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

Andere Optionen, für die ‚kleine‘ und ‚große‘, die die großen Zecken sind (die werden in Ihrem Graphen angezeigt) und die kleinen Ticks, die Ihnen fehlen. Wenn Sie durchgezogene Linien möchten, können Sie auch ls="-" als Parameter für grid() verwenden. Hier

ist ein Beispiel für 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() 

, die erzeugt:

+2

Ich habe festgestellt, dass auf meinem Rechner mit "beiden" keine Haupt- oder Nebengitterlinien angezeigt werden. Mit etwas googeln fand ich diesen Pfosten: http://www.mailinglistarchive.com/html/[email protected]/2010-06/msg00174.html das scheint vorzuschlagen, dass ältere Versionen von matplotlib verlangen, "zu verwenden" Majorminor "statt" beides ". Weißt du, ob es eine offizielle Dokumentation dieses Wechsels zwischen den Versionen gibt? Ich habe http://matplotlib.sourceforge.net/api/api_changes.html angeschaut, aber es scheint keine Erwähnung davon zu geben ... –

+0

@Bryce Ich habe keine Ahnung, wann diese Änderung in Kraft trat. Ich benutze im Allgemeinen nur die neueste Version. Ich bin mit Matplotlib eigentlich nicht so gut. –

+0

Wenn ich eine dieser Nachrichten ansehe, denke ich, dass es am 9. Juni 2010 passiert ist. Ich bin mir nicht sicher, welche Version das wäre, aber es war ziemlich neu. –

4

Wie @Bryce sagt, in meiner Maschine die richtige kwarg majorminor ist. Ich denke, dass durchgezogene Linien mit hellerer Farbe besser sein können als gestrichelte Linien.

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

funktioniert für mich.

Verwandte Themen