Vertikale Striche zur x-Achse mit pgfplots/tikzpicture

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Vertikale Striche zur x-Achse mit pgfplots/tikzpicture

Re: Vertikale Striche zur x-Achse mit pgfplots/tikzpicture

von localghost » Fr 31. Jan 2025, 17:31

Abschnitt 4.5.7 der Anleitung zu »PGFplots« liefert die Lösung.

Vertikale Striche zur x-Achse mit pgfplots/tikzpicture

von ChemSim » Fr 31. Jan 2025, 14:20

Hallo zusammen,

ich nutze pgfplots zusammen mit tikzpicture, um meine Plots zu erstellen. Hier der Code:
\documentclass{article}

% TikZ & PGF-Plots
\usepackage{tikz}
\usetikzlibrary{external}
\tikzexternalize[prefix=tikz/,optimize command away=\includepdf]

\usepackage{pgfplots}
\pgfplotsset{compat=1.18}

\begin{document}

\begin{figure}[ht]
    \centering
        \begin{tikzpicture}
        \pgfplotsset{
            width=10cm, % Breite 
            height=8cm, % Höhe 
            scale only axis,
            xmin=10, xmax=120,
            xtick={10, 20, ..., 120}, % Skalierung x-Achse
            xtick pos=bottom, % Ticks nur unten auf der x-Achse
            xtick align=outside, % Ticks zeigen nach innen
            xlabel={x-Achse}, % Beschriftung x-Achse
        }
        
        \begin{axis}[
            axis y line*=left, % y-Achse links
            ylabel={y-Achse}, % Beschriftung y-Achse
            ymin=-50, ymax=80, % Wertebereich y-Achse
            ytick=\empty, % keine Markierungen auf y-Achse
        ]

        % Fresh
        \addplot
        table[y=y1, y expr=\thisrow{y1}/2]
        {data/xrd.txt};

        % 60 °C
        \addplot
        table[y=y2, y expr=\thisrow{y2} + 20]
        {data/xrd.txt};

        % 70 °C
        \addplot
        table[y=y3, y expr=\thisrow{y3} + 40]
        {data/xrd.txt};

        % 80 °C
        \addplot
        table[y=y4, y expr=\thisrow{y4} + 60]
        {data/xrd.txt};
        
        \end{axis}

        \begin{axis}[
            axis y line*=right, % y-Achse rechts
            axis x line=none, % keine x-Achse
            ymin=-250, ymax=3500, % Wertebereich y-Achse
            ytick=\empty, % keine Markierungen auf y-Achse
        ]

        % Ref
        \addplot[only marks, mark size=0.5pt]
        table
        {data/xrd_ref.txt};

        \end{axis}
        
        \end{tikzpicture}
\end{figure}

\end{document}
Leider kann ich hier kein MWE bauen, da ich die Datensätze per
        \addplot
        table
        {data/<name>.txt};
importiere und es sich um sehr große Datensätze handelt. Soweit funktioniert auch alles super. Im letzten Teil füge ich einen anderen Plot mit dem Code
        \begin{axis}[
            axis y line*=right, % y-Achse rechts
            axis x line=none, % keine x-Achse
            ymin=-250, ymax=3500, % Wertebereich y-Achse
            ytick=\empty, % keine Markierungen auf y-Achse
        ]

        % Ref
        \addplot[only marks, mark size=0.5pt]
        table
        {data/xrd_ref.txt};

        \end{axis}
hinzu. Der Datensatz xrd_ref.txt besteht im Vergleich zu den anderen nur aus 37 Datensätzen (x, y).

Frage: Wie kann ich von jedem dieser Punkte (x, y) eine senkrechte Linie nach unten bis zur x-Achse (x=0) zeichnen?

Wäre über Hilfe sehr dankbar!

Anbei noch die PDF-Ausgabe des bisherigen Plots, es geht um die schwarzen marks, von denen aus ich die Striche nach unten zeichnen möchte.
output-figure3.pdf
(197.89 KiB) 258-mal heruntergeladen
Dateianhänge
xrd_ref.txt
(512 Bytes) 219-mal heruntergeladen
xrd.txt
(222.07 KiB) 178-mal heruntergeladen

Nach oben