Wenn ich die x-ticks ändere (im Beispiel von 20er Abstand auf 10er Abstand), verändere ich auch automatisch das grid. Wie kann man bei TikZ das grid unabhängig von den ticks zeichnen, so dass das Grid alle 10 Einheiten und die ticks alle 20 Einheiten gezeichnet werden? Open in Online-Editor
\documentclass{scrartcl} \usepackage{tikz,pgfplots} \pgfplotsset{width=8cm,height=6cm} \begin{document} \begin{tikzpicture} \begin{axis}[ %zeichnen allgemeine funktionen %einstellungen für das koordinatensystem axis x line=middle, %position der x-achse bottom, middle, top, none axis y line=middle, %position der y-achse right, middle, left, none xlabel={$t$}, %x-achsenbeschriftung ylabel={$v$}, %y-achsenbeschriftung x=0.1cm, %größe der kästchen in x-richtung y=0.5cm, %größe der kästchen in y-richtung grid =major, %zeichnet rechenkästchen in der x- und y-achse xtick={0,20,...,120}, % x-achsenskalierung ytick={-5,-3,...,15}, % y-achsenskalierung xmin=0, % definitionsbereich minimumwert xmax=115, % definitionsbereich maximumwert ymin=-6.5, % wertebereich minimumwert ymax=16.5, % wertebereich maximumwert scale = 0.7 % vergrößerungsfaktor ] \end{axis} \end{tikzpicture} \begin{tikzpicture} \begin{axis}[ %zeichnen allgemeine funktionen %einstellungen für das koordinatensystem axis x line=middle, %position der x-achse bottom, middle, top, none axis y line=middle, %position der y-achse right, middle, left, none xlabel={$t$}, %x-achsenbeschriftung ylabel={$v$}, %y-achsenbeschriftung x=0.1cm, %größe der kästchen in x-richtung y=0.5cm, %größe der kästchen in y-richtung grid =major, %zeichnet rechenkästchen in der x- und y-achse xtick={0,10,...,120}, % x-achsenskalierung ytick={-5,-3,...,15}, % y-achsenskalierung xmin=0, % definitionsbereich minimumwert xmax=115, % definitionsbereich maximumwert ymin=-6.5, % wertebereich minimumwert ymax=16.5, % wertebereich maximumwert scale = 0.7 % vergrößerungsfaktor ] \end{axis} \end{tikzpicture} \end{document} gefragt 19 Aug '15, 21:05 typ42 |
Für das konkrete Beispiel wäre eine einfache Möglichkeit Code: Open in Online-Editor
\documentclass{scrartcl} \usepackage{tikz,pgfplots} \pgfplotsset{width=8cm,height=6cm, compat=newest % derzeit aktuelle Version wäre 1.12 } \begin{document} \begin{tikzpicture} \begin{axis}[ %zeichnen allgemeine funktionen %einstellungen für das koordinatensystem axis x line=middle, %position der x-achse bottom, middle, top, none axis y line=middle, %position der y-achse right, middle, left, none xlabel={$t$}, %x-achsenbeschriftung ylabel={$v$}, %y-achsenbeschriftung x=0.1cm, %größe der kästchen in x-richtung y=0.5cm, %größe der kästchen in y-richtung grid =both, minor x tick num=1, subtickwidth=0pt, xtick={0,20,...,120}, % x-achsenskalierung ytick={-5,-3,...,15}, % y-achsenskalierung xmin=0, % definitionsbereich minimumwert xmax=115, % definitionsbereich maximumwert ymin=-6.5, % wertebereich minimumwert ymax=16.5, % wertebereich maximumwert scale = 0.7 % vergrößerungsfaktor ] \end{axis} \end{tikzpicture} \end{document} Man kann aber auch mit Code: Open in Online-Editor
\documentclass{scrartcl} \usepackage{tikz,pgfplots} \pgfplotsset{width=8cm,height=6cm, compat=newest % derzeit aktuelle Version wäre 1.12 } \begin{document} \begin{tikzpicture} \begin{axis}[set layers, %zeichnen allgemeine funktionen %einstellungen für das koordinatensystem axis x line=middle, %position der x-achse bottom, middle, top, none axis y line=middle, %position der y-achse right, middle, left, none xlabel={$t$}, %x-achsenbeschriftung ylabel={$v$}, %y-achsenbeschriftung x=0.1cm, %größe der kästchen in x-richtung y=0.5cm, %größe der kästchen in y-richtung ymajorgrids=true, xtick={0,15,50,80,105}, % x-achsenskalierung ytick={-5,-3,...,15}, % y-achsenskalierung xmin=0, % definitionsbereich minimumwert xmax=115, % definitionsbereich maximumwert ymin=-6.5, % wertebereich minimumwert ymax=16.5, % wertebereich maximumwert scale = 0.7, % vergrößerungsfaktor set layers ] % Zeichnen der x-Gitterlinien \pgfplotsinvokeforeach {5,10,...,115}{ \pgfonlayer{axis grid} \draw[green!50](#1,0|-current axis.south)--(#1,0|-current axis.north); \endpgfonlayer } \end{axis} \end{tikzpicture} \end{document} Das Ganze lässt sich dann auch auf die y-Gitterlinien übertragen, in dem man zum Beispiel den folgenden Code ergänzt und gegebenenfalls Open in Online-Editor
% Zeichnen der y-Gitterlinien \pgfplotsinvokeforeach {-6,-5,...,16}{ \pgfonlayer{axis grid} \draw[orange!50](0,#1-|current axis.west)--(0,#1-|current axis.east); \endpgfonlayer }
Code: Open in Online-Editor
\documentclass{scrartcl} \usepackage{tikz,pgfplots} \pgfplotsset{width=8cm,height=6cm, compat=newest % derzeit aktuelle Version wäre 1.12 } \begin{document} \begin{tikzpicture} \begin{axis}[set layers, %zeichnen allgemeine funktionen %einstellungen für das koordinatensystem axis x line=middle, %position der x-achse bottom, middle, top, none axis y line=middle, %position der y-achse right, middle, left, none xlabel={$t$}, %x-achsenbeschriftung ylabel={$v$}, %y-achsenbeschriftung x=0.1cm, %größe der kästchen in x-richtung y=0.5cm, %größe der kästchen in y-richtung %grid=major, xtick={0,15,50,80,105}, % x-achsenskalierung ytick={-5,-3,...,15}, % y-achsenskalierung xmin=0, % definitionsbereich minimumwert xmax=115, % definitionsbereich maximumwert ymin=-6.5, % wertebereich minimumwert ymax=16.5, % wertebereich maximumwert scale = 0.7, % vergrößerungsfaktor set layers ] % Zeichnen der x-Gitterlinien \pgfplotsinvokeforeach {5,10,...,115}{ \pgfonlayer{axis grid} \draw[green!50](#1,0|-current axis.south)--(#1,0|-current axis.north); \endpgfonlayer } % Zeichnen der y-Gitterlinien \pgfplotsinvokeforeach {-6,-5,...,16}{ \pgfonlayer{axis grid} \draw[orange!50](0,#1-|current axis.west)--(0,#1-|current axis.east); \endpgfonlayer } \end{axis} \end{tikzpicture} \end{document} beantwortet 19 Aug '15, 22:19 esdd Ja, dein letztes allgemeines Beispiel ist gut. Ich komme aber nicht ganz mit deinem Befehl klar. Die #1 wird durch 5,10... ersetzt und somit wird jeweils der x-Wert verändert. Was genau bewirkt aber das current axis.south und north und muss man dann für die y-Gitterlinien west und east nehmen?
(19 Aug '15, 23:00)
typ42
|