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?

alt text

Open in Online-Editor
Code, hier editierbar zum Übersetzen:
\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
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

gefragt 19 Aug '15, 21:05

typ42's gravatar image

typ42
38341928
Akzeptiert-Rate: 33%


Für das konkrete Beispiel wäre eine einfache Möglichkeit grid=both zu verwenden und mit minor x tick num=1 jeweils einen Zwischentick zu setzen, der mit der Option subtickwidth=0pt nicht gezeichnet wird.

alt text

Code:

Open in Online-Editor
Code, hier editierbar zum Übersetzen:
\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}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Man kann aber auch mit set layers die Verwendung der Standardlayer aktivieren und dann im axis grid Layer eigene Gitterlinien zeichnen, die vollkommen unabhängig von den Positionen der Ticks sind. Damit das deutlich wird, habe ich im Folgenden die Ticks auf der x-Achse unregelmäßig verteilt.

alt text

Code:

Open in Online-Editor
Code, hier editierbar zum Übersetzen:
\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}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Das Ganze lässt sich dann auch auf die y-Gitterlinien übertragen, in dem man zum Beispiel den folgenden Code ergänzt und gegebenenfalls ymajorgrids=true entfernt:

Open in Online-Editor
Code, hier editierbar zum Übersetzen:
% 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
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

(0,#1-|current axis.west) bezeichnet dabei den Schnittpunkt der horizontalen Linie durch den Punkt (0,#1) und der vertikalen Linie durch den Punkt (current axis.west).

alt text

Code:

Open in Online-Editor
Code, hier editierbar zum Übersetzen:
\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}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Permanenter link

beantwortet 19 Aug '15, 22:19

esdd's gravatar image

esdd
17.8k294257
Akzeptiert-Rate: 62%

bearbeitet 19 Aug '15, 23:43

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
1

@typ42 Ich habe das Beispiel noch auf y-Gitterlinien erweitert.

(19 Aug '15, 23:44) esdd
Deine Antwort
[Vorschau ausblenden]

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

Frage-Themen:

×731
×3

gestellte Frage: 19 Aug '15, 21:05

Frage wurde gesehen: 18,605 Mal

zuletzt geändert: 19 Aug '15, 23:44

Willkommen, erstes Mal hier? Schau mal unter FAQ!

×