alt textIch bin dabei für meine Masterthese ein Diagramm mit 4 Graphen zu erstellen. Die Skalierung der X-Achse erfolgt dabei in 0,02 0,05 0,1 0,2 0,5 und 1,0 Schritten. Der Abstand bzw. die Skalierung zwischen den Werten soll aber gleich sein.

Öffne in Overleaf
\documentclass[chapterprefix=true, 12pt, a4paper, oneside, parskip=half, listof=totoc, bibliography=totoc, numbers=noendperiod]{scrbook}
\usepackage{pgfplots}
\usepackage{tikz}
\begin{document}
\begin{figure}[H]
\begin{tikzpicture}
\begin{axis}[width=0.95\textwidth,height=0.48\textheight,ylabel shift = -1cm,
    /pgf/number format/.cd,
        use comma,
        1000 sep={},
    title={Grathöhe $h_{0}$},
    xlabel={Zustellung $a_{e}$ in mm,}
    ylabel={Grathöhe in $\mu$m, }
    xmin=0, xmax=1.0,
    ymin=0, ymax=1000,
    xtick={0,0.02,0.05,0.1,0.2,0.5,1.0},
    ytick={0,250,500,750,1000},
    legend style={at={(0.5,-0.1)},anchor=north},
    ymajorgrids=false,
    xmajorgrids=false,
    grid style=dashed
    ]

\addplot [color=red, thick, mark=o]    table[x=L, y=H60,] {RaRz.csv};
\addplot [color=blue, thick, mark=square]   table[x=L, y=K60,] {RaRz.csv};
\addplot [color=black, thick, mark=o]  table[x=L, y=H90,] {RaRz.csv};
\addplot [color=orange, thick, mark=square] table[x=L, y=K90,] {RaRz.csv};
\legend{H`enter code here`; $\gamma$ = 60 $^\circ$,K; $\gamma$ = 60 $^\circ$,H; $\gamma$ = 90 $^\circ$,K; $\gamma$ = 90 $^\circ$};
\end{axis}
\end{tikzpicture}
\caption{Unterschrift}
\label{img:dia1}
\end{figure}  
\end{document}

Koordinaten:

Öffne in Overleaf
L   H60 K60 H90 K90
0   251 388.547 119.126 68.89
0.01    238.7   672.49  389.371 416.768
0.02    321.729     408.473 
0.1 518.886 829.402 359.083 441.275
0.2 432.966 359.907 268.583 309.692
1.0 479.48  776.298 283.119 351.612

gefragt 12 Apr '18, 12:59

Christian01's gravatar image

Christian01
11146
Akzeptiert-Rate: 0%

bearbeitet 12 Apr '18, 14:14

Wie kann ich eine Minimalbeispiel einfügen? Die Texdatei dafür habe ich erstellt...

(12 Apr '18, 13:34) Christian01

Per Markdown. Ich habe oben bereits einen Link und mehr dazu geliefert. Mal meine Änderung in Revision 5 anzuschauen, wäre auch eine gute Idee. Und dann haben wir noch den Sandkasten zum Übern und weitere Meta-Fragen wie: Wie gebe ich hier Code (im Fließtext) ein?

(12 Apr '18, 13:42) saputello
1

@Christian01 Du sagst, dass Du an den Achsen Ticks für 0,02,0,05 0,1 0,2 0,5 und 1,0 haben möchtest. In Deiner Tabelle mit den Koordinaten kommen aber zusätzlich Werte für L=0 und L=0.01 vor. Sollen die ignoriert werden? Dafür gibt es keine Zeile mit L=0.5. In der Zeile für mit L=0.02 ist nicht klar zu welchen Spalten die beiden Werte gehören bzw. für welche Spalten die Werte fehlen. Zellen die keine Werte enthalten musst Du mit {} markieren.

(12 Apr '18, 22:01) esdd

Hier ist noch ein anderer Vorschlag, der den Abstand zwischen den Punkten konstant hält. Die Idee ist, pgfplots einzureden, das seien symbolische Koordinaten.

Öffne in Overleaf
\documentclass[chapterprefix=true, 12pt, a4paper, oneside, parskip=half, listof=totoc, bibliography=totoc, numbers=noendperiod]{scrbook}
\usepackage{pgfplots}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\begin{axis}[width=0.95\textwidth,height=0.48\textheight,ylabel shift = -1cm,
    /pgf/number format/.cd,
        use comma,
        1000 sep={},
    title={Grath\"ohe $h_{0}$},
    xlabel={Zustellung $a_{e}$ in mm,}
    ylabel={Grathöhe in $\mu$m, }
    %xmin=0, xmax=1.0,
    ymin=0, ymax=1000,
    symbolic x coords={0,0.01,0.02,0.05,0.1,0.2,0.5,1.0},
    xticklabel style={
        anchor=base,
        yshift=-\baselineskip,
    },
    xtick=data,
    ytick={0,250,500,750,1000},
    legend style={at={(0.75,0.98)},anchor=north},
    ymajorgrids=false,
    xmajorgrids=false,
    grid style=dashed,
    ]

\addplot [color=red, thick, mark=o]    table[x=L, y=H60,] {RaRz.csv};
\addplot [color=blue, thick, mark=square]   table[x=L, y=K60,] {RaRz.csv};
\addplot [color=black, thick, mark=o]  table[x=L, y=H90,] {RaRz.csv};
\addplot [color=orange, thick, mark=square] table[x=L, y=K90,] {RaRz.csv};
\legend{H; $\gamma$ = 60 $^\circ$,K; $\gamma$ = 60 $^\circ$,H; $\gamma$ = 90 $^\circ$,K; $\gamma$ = 90 $^\circ$};
\end{axis}
\end{tikzpicture}
\end{document}

alt text

Ich denke allerdings, dass Henri's Antwort sinnvoller ist.

Permanenter link

beantwortet 12 Apr '18, 23:29

Community's gravatar image

Community
21
Akzeptiert-Rate: 56%

Danke dir, Henris Antwort gefällt mir auch besser.

(13 Apr '18, 10:39) Christian01

Was du suchst nennt sich logarithmische Achsenskalierung.

Öffne in Overleaf
\documentclass[chapterprefix=true, 12pt, a4paper, oneside, parskip=half, listof=totoc, bibliography=totoc, numbers=noendperiod]{scrbook}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
  \begin{semilogxaxis}[width=0.95\textwidth,height=0.48\textheight,ylabel shift = -1cm,
    title={Grathöhe $h_{0}$},
    xlabel={Zustellung $a_{e}$ in mm,}
    ylabel={Grathöhe in $\mu$m, }
    xmin=0, xmax=1.0,
    ymin=0, ymax=1000,
    xtick={0,0.02,0.05,0.1,0.2,0.5,1.0},
    ytick={0,250,500,750,1000},
    log ticks with fixed point,
    legend style={at={(0.5,-0.1)},anchor=north},
    ymajorgrids=false,
    xmajorgrids=false,
    grid style=dashed,
    /pgf/number format/.cd,
    use comma,
    1000 sep={},
    ]

    \addplot [color=red, thick, mark=o]    table[x=L, y=H60,] {RaRz.csv};
    \addplot [color=blue, thick, mark=square]   table[x=L, y=K60,] {RaRz.csv};
    \addplot [color=black, thick, mark=o]  table[x=L, y=H90,] {RaRz.csv};
    \addplot [color=orange, thick, mark=square] table[x=L, y=K90,] {RaRz.csv};
    \legend{H; $\gamma$ = 60 $^\circ$,K; $\gamma$ = 60 $^\circ$,H; $\gamma$ = 90 $^\circ$,K; $\gamma$ = 90 $^\circ$};
  \end{semilogxaxis}
\end{tikzpicture}
\end{document}

alt text

Permanenter link

beantwortet 12 Apr '18, 14:13

Henri's gravatar image

Henri
15.7k133943
Akzeptiert-Rate: 46%

Vielen Dank für die schnelle Antwort! Drei Dinge sind mir aufgefallen: Die Graphen beginnen nicht bei x=0,02. Bei den Graphen K fehlt die Y-Koordinate zur X-Koordinate. Trotzdem setzt Latex dort einen Punkt hin... Gibt es auch eine Möglichkeit die Abstände der Skaleneinteilung zu reduzieren, sodass die Tabelle insgesamt kleiner wird?

(12 Apr '18, 14:21) Christian01

@Christian01: Du hast ja auch die Werte 0 und 0.01 in Deinen CSV-Daten. Wenn Du die beiden nicht willst, kannst Du die ersten beiden Werte weglassen. Und welche Y-Koordinaten ausgegeben werden, hast Du selbst per ytick bestimmt.

(12 Apr '18, 14:48) saputello

@Henri Ich frage mich, ob der OP nicht eher nach symbolic x coords und \pgfplotsset{ xticklabel={\tick}, scaled x ticks=false, plot coordinates/math parser=false, } sucht.

(12 Apr '18, 20:00) Community
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:

×296

gestellte Frage: 12 Apr '18, 12:59

Frage wurde gesehen: 7,996 Mal

zuletzt geändert: 13 Apr '18, 10:39