Ich möchte folgendes Diagramm mit TikZ nachzeichnen. alt text

Als Code sieht das ganze so aus:

Code, hier editierbar zum Übersetzen:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[]
\draw[help lines, color=green!60!black, xstep=.5cm] (-.2,-.2) grid (4.5,3.75);
\draw[->] (0,-.5) -- (0,4.25) node [left=1ex, align=right] {$s$\\ in km};
\draw[->] (-.5,0) -- (5,0) node [below=1ex, align=left] {$t$\\ in h};
\foreach \x in {1,2,...,4}
\node [below=1ex] at (\x,0) {\x};
\foreach \y in {3,6,9}
\node [left=1ex] at (0,\y/3) {\y};
\coordinate (A) at (0,1);
\coordinate (B) at (1,2);
\coordinate (C) at (1.5,3);
\coordinate (D) at (2.2,3);
\coordinate (E) at (2.5,2);
\coordinate (F) at (4,0);
\draw[color=magenta!80!yellow, very thick] (A) -- (B) -- (C) --(D) -- (E) -- (F);
\filldraw[black] (A) circle (2pt);
\filldraw[black] (B) circle (2pt);
\filldraw[black] (C) circle (2pt);
\filldraw[black] (D) circle (2pt);
\filldraw[black] (E) circle (2pt);
\filldraw[black] (F) circle (2pt);
\end{tikzpicture}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

alt text

Zwei Dinge würde ich an meinem Diagramm gerne Verbessern:

  1. Das grid soll trotz der unterschiedlichen Achsenskalierung quadratisch sein.
  2. Die Koordinaten der Punkte entsprechen zumindest auf der vertikalen Achse nicht der Beschriftung. Der Punkt (1|6) im Bild entspricht im Code (1|2), das würde ich gerne angleichen.

gefragt 18 Mär '17, 10:40

kasiii's gravatar image

kasiii
56157
Akzeptiert-Rate: 0%

bearbeitet 13 Jun '21, 20:29

saputello's gravatar image

saputello
11.1k174365

Willkommen auf TeXwelt!

Sehr gut gestellte Frage mit sehr schönem Minimalbeispiel!

(20 Mär '17, 08:26) saputello

Du kannst einfach die Länge der y Einheit gleich einem Drittel eines Zentimeters setzen: y={1cm/3}:

Öffne in Overleaf
Code, hier editierbar zum Übersetzen:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[y={1cm/3}]% <- y-Einheit nur 1cm/3 statt 1cm
\draw[help lines, color=green!60!black, step=0.5cm] (-.2,-.2) grid (4.5,10);
\draw[->] (0,-.5) -- (0,12) node [left=1ex, align=right] {$s$\\ in km};
\draw[->] (-.5,0) -- (5,0) node [below=1ex, align=left] {$t$\\ in h};
\foreach \x in {1,2,...,4}
\node [below=1ex] at (\x,0) {\x};
\foreach \y in {3,6,9}
\node [left=1ex] at (0,\y) {\y};
\coordinate (A) at (0,3);
\coordinate (B) at (1,6);
\coordinate (C) at (1.5,9);
\coordinate (D) at (2.2,9);
\coordinate (E) at (2.5,6);
\coordinate (F) at (4,0);
\draw[color=magenta!80!yellow, very thick] (A) -- (B) -- (C) --(D) -- (E) -- (F);
\foreach \p in {A,B,C,D,E,F}
\filldraw[black] (\p) circle [radius=2pt];
\end{tikzpicture}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

alt text

Permanenter link

beantwortet 21 Mär '17, 10:04

esdd's gravatar image

esdd
17.8k294257
Akzeptiert-Rate: 62%

Vielen Dank! Diese Lösung gefällt mir gut. Da ich zu faul bin, eine Skalierung an die Achsen zu zeichnen lasse ich das grid überstehen. Wenn man die Längenangabe in pt umschreibt sind die Striche der Skaleneinteilung für die s und t Achse auch gleich lang:

Öffne in Overleaf

\draw[help lines, color=green!60!black, step=0.5cm] (-2pt,-2pt) grid (4.5,10);
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

(21 Mär '17, 14:10) kasiii

Skalieren ist immer möglich und natürlich kann man dabei auch gleich die Koordinaten anpassen:

Öffne in Overleaf
Code, hier editierbar zum Übersetzen:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[yscale=0.167]
\draw[help lines, color=green!60!black, xstep=0.5cm, ystep=3cm] (-.2,-.2) grid (4.5,10);
\draw[->] (0,-.5) -- (0,12) node [left=1ex, align=right] {$s$\\ in km};
\draw[->] (-.5,0) -- (5,0) node [below=1ex, align=left] {$t$\\ in h};
\foreach \x in {1,2,...,4}
\node [below=1ex] at (\x,0) {\x};
\foreach \y in {3,6,9}
\node [left=1ex] at (0,\y) {\y};
\coordinate (A) at (0,3);
\coordinate (B) at (1,6);
\coordinate (C) at (1.5,9);
\coordinate (D) at (2.2,9);
\coordinate (E) at (2.5,6);
\coordinate (F) at (4,0);
\draw[color=magenta!80!yellow, very thick] (A) -- (B) -- (C) --(D) -- (E) -- (F);
\filldraw[black] (A) circle (2pt);
\filldraw[black] (B) circle (2pt);
\filldraw[black] (C) circle (2pt);
\filldraw[black] (D) circle (2pt);
\filldraw[black] (E) circle (2pt);
\filldraw[black] (F) circle (2pt);
\end{tikzpicture}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Allerdings sind jetzt natürlich die Kreise (circle) überhaupt nicht mehr rund. Das könnte man vermutlich dadurch lösen, dass man mit scope arbeitet und Kreise so eben nicht skaliert oder man könnte statt Kreise Ovale zeichnen, die die Skalierung ausgleichen, oder man skaliert eben die Kreise wieder in Gegenrichtung:

Öffne in Overleaf
Code, hier editierbar zum Übersetzen:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[yscale=0.167]
\draw[help lines, color=green!60!black, xstep=0.5cm, ystep=3cm] (-.2,-.2) grid (4.5,10);
\draw[->] (0,-.5) -- (0,12) node [left=1ex, align=right] {$s$\\ in km};
\draw[->] (-.5,0) -- (5,0) node [below=1ex, align=left] {$t$\\ in h};
\foreach \x in {1,2,...,4}
\node [below=1ex] at (\x,0) {\x};
\foreach \y in {3,6,9}
\node [left=1ex] at (0,\y) {\y};
\coordinate (A) at (0,3);
\coordinate (B) at (1,6);
\coordinate (C) at (1.5,9);
\coordinate (D) at (2.2,9);
\coordinate (E) at (2.5,6);
\coordinate (F) at (4,0);
\draw[color=magenta!80!yellow, very thick] (A) -- (B) -- (C) --(D) -- (E) -- (F);
\filldraw[black,yscale=6] (A) circle (2pt);
\filldraw[black,yscale=6] (B) circle (2pt);
\filldraw[black,yscale=6] (C) circle (2pt);
\filldraw[black,yscale=6] (D) circle (2pt);
\filldraw[black,yscale=6] (E) circle (2pt);
\filldraw[black,yscale=6] (F) circle (2pt);
\end{tikzpicture}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Permanenter link

beantwortet 18 Mär '17, 11:24

gast3's gravatar image

gast3
(ausgesetzt)
Akzeptiert-Rate: 53%

Danke für die Antwort. Mit der Skalierung habe ich auch schon herumgespielt, allerdings hat mich die Verzerrung abgeschreckt.

(21 Mär '17, 14:08) kasiii
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
×54
×18
×8

gestellte Frage: 18 Mär '17, 10:40

Frage wurde gesehen: 12,051 Mal

zuletzt geändert: 21 Mär '17, 14:10

Willkommen, erstes Mal hier? Schau mal unter FAQ!

×