TeXwelt wurde neu installiert. Es funktionieren noch nicht alle Features und auch an den deutschsprachigen Formulierungen wird verbessert. Danke für eure Geduld.

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

Als Code sieht das ganze so aus:

Öffne in Overleaf
\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}

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
5637
Akzeptiert-Rate: 0%

bearbeitet 18 Mär '17, 15:48

cgnieder's gravatar image

cgnieder
20.7k163463

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
\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}

alt text

Permanenter link

beantwortet 21 Mär '17, 10:04

esdd's gravatar image

esdd
15.3k134054
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);

(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
\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}

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
\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}
Permanenter link

beantwortet 18 Mär '17, 11:24

Ijon%20Tichy's gravatar image

Ijon Tichy
9.1k31026
Akzeptiert-Rate: 55%

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 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:

×678
×17
×7
×6

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

Frage wurde gesehen: 5,165 Mal

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