Ein Koordinatensystem soll mit einem 5-mm-Gitternetz versehen werden wie es auf Rechenpapier üblich ist. Bisher verwende ich folgende Lösung, die allerdings etwas getrickst ist, da ich erstens eine Unterskala (minor ticks) einführe, die ich eigentlich nicht brauche, und zweitens die Breite und Höhe der Abbildung manuell berechne.

Open in Online-Editor
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.10,axis lines=middle,scale only axis}

\begin{document}
\begin{tikzpicture}
\begin{axis}[xmin=-3.8,xmax=6.8,ymin=-2.3,ymax=4.3,width=10.6cm,height=6.6cm,minor tick num=1,grid=both]
\end{axis}
\end{tikzpicture}
\end{document}

Wie könnte eine bessere Lösung aussehen?

gefragt 10 Okt '15, 20:52

Cletus's gravatar image

Cletus
1.6k75866
Akzeptiert-Rate: 75%

bearbeitet 10 Okt '15, 20:53


Die Unterskala kannst Du einfach unterdrücken, indem Du minor tick length auf 0 setzt. width und height werden ebenfalls nicht benötigt. Dafür sollte man (wie schon @esdd gezeigt) x und y passend setzen:

Open in Online-Editor
\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,
    x=1cm,
    y=1cm,
    minor tick num=1,% zwischen zwei Haupt-Achsmarkierungen jeweils einen Untermarkierungen einfügen
    minor tick length=0pt,% Länge der Untermarkierungen auf 0 setzen, sie also unterdrücken
    grid={both}% Gitterlinien sowohl durch die Positionen der Haupt- als auch Untermarkierungen
    ]
  \end{axis}
\end{tikzpicture}
\end{document}

Ergebnis mit grid

Permanenter link

beantwortet 11 Okt '15, 12:37

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

bearbeitet 12 Okt '15, 08:18

Diese Lösung ist übersichtlicher als die andere und für meine Zwecke völlig ausreichend.

(11 Okt '15, 20:48) Cletus

Wenn die Kästchen genau 5mm groß sein sollen, dann kann man einfach für x und y eine passende Einheit wählen. Wenn 1cm in x- bzw. y-Richtung 1cm jeweils eine Achseinheit sein sollen, dann sind die Optionen x=1cm und y=1cm sinnvoll.

Mit set layers aktiviert man noch die Standardlayer und zeichnet dann im axis grid-Layer die gewünscheten Gitterlinien. Zum Begrenzen des Gitters auf das Diagramm können die Anker des current axis Node genutzt werden.

Open in Online-Editor
\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,
    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}

alt text

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.

Open in Online-Editor
\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

Permanenter link

beantwortet 10 Okt '15, 22:54

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

bearbeitet 11 Okt '15, 00:36

Das ist so leider noch nicht brauchbar. Wie ich geschrieben habe, hätte ich gern eine Kästchengröße von exakt 5 Millimetern.

(10 Okt '15, 23:42) Cletus

Gut, dann haben die Kästchen jetzt 5 Millimeter.

(11 Okt '15, 00:38) esdd

Ja, genau so sollte das aussehen. Nur schade, dass sich ein solches (im Schulbereich sehr oft benötigtes) Standardgitter nur mit so großem Aufwand erzeugen lässt.

(11 Okt '15, 11:34) Cletus
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×298
×1

gestellte Frage: 10 Okt '15, 20:52

Frage wurde gesehen: 15,957 Mal

zuletzt geändert: 12 Okt '15, 08:18