Mir ist jetzt nicht klar, ob Du tatsächlich ein 5mm-Gitternetz haben möchtest oder einfach ein 0,5-Achseneneinheiten-Gitternetz. Ich gehe jetzt mal von letzterem aus.
Um sicherzustellen, dass Wenn die die Einheiten von x- und y-Achse gleich Kästchen genau 5mm groß sind, sein sollen, dann kann man einfach für `x` und `y` eine der Optionen `axis equal` oder `axis equal image` nutzen. Bei der ersten Option werden die Vorgaben für Höhe passende Einheit. Wenn eine Einheit in `x`- bzw. `y`-Richtung 1cm lang ist, dann bieten sich `x=1cm` und Breite des Diagramms eingehalten, bei der zweiten werden diese Angaben an die Koordinaten- und Darstellungsbereiche angepasst.
`y=1cm` an.
Mit `set layers` kann man noch die Standardlayer aktivieren und dann im `axis grid`-Layer eigene Gitterlinien zeichnen. Zum Begrenzen des Gitters können die Anker des `current axis` Node genutzt werden.
\documentclass[margin=5pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{
compat=1.12,
axis lines=middle
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=-3.8,xmax=6.8,
ymin=-2.3,ymax=4.3,
axis equal,
x=1cm,
y=1cm,
set layers
]
\pgfplotsinvokeforeach {-10,-9.5,...,10}{
\pgfonlayer{axis grid}
\begin{scope}
\clip(current axis.south west)rectangle(current axis.north east);
\draw[help lines](#1,0|-current axis.south)--(#1,0|-current axis.north);
\draw[help lines](0,#1-|current axis.west)--(0,#1-|current axis.east);
\end{scope}
\endpgfonlayer
}
\end{axis}
\end{tikzpicture}
\end{document}
Ergebnis:
![alt text][1]
oder mit `axis equal image` statt `axis equal`:
Wenn Du einen anderen Achsenmaßstab brauchst, dann musst Du die Einheit entsprechend anpassen und die Werte für die Schleife ändern. Falls `x`- und `y`-Achse einen unterschiedlichen Maßstab haben, dann brauchst Du zwei getrennte Schleifen für das Gitter. Hier ist noch ein Beispiel bei dem 10 `x`-Einheiten 1cm sind während in `y`-Richtung 1cm weiterhin 1 Einheit ist.
\documentclass[margin=5pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{
compat=1.12,
axis lines=middle
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=-38,xmax=68,
ymin=-2.3,ymax=4.3,
x=0.1cm,
y=1cm,
set layers
]
\pgfplotsinvokeforeach {-100,-95,...,100}{
\pgfonlayer{axis grid}
\begin{scope}
\clip(current axis.south west)rectangle(current axis.north east);
\draw[help lines](#1,0|-current axis.south)--(#1,0|-current axis.north);
\end{scope}
\endpgfonlayer
}
\pgfplotsinvokeforeach {-10,-9.5,...,10}{
\pgfonlayer{axis grid}
\begin{scope}
\clip(current axis.south west)rectangle(current axis.north east);
\draw[help lines](0,#1-|current axis.west)--(0,#1-|current axis.east);
\end{scope}
\endpgfonlayer
}
\end{axis}
\end{tikzpicture}
\end{document}
![alt text][2]
[1]: http://texwelt.de/wissen/upfiles/tw_plotgrid1.png
http://texwelt.de/wissen/upfiles/tw_plotgrid3.png
[2]: http://texwelt.de/wissen/upfiles/tw_plotgrid2.pnghttp://texwelt.de/wissen/upfiles/tw_plotgrid4.png