So laden Sie zusätzliche Häkchen aus einer CSV-Datei

So laden Sie zusätzliche Häkchen aus einer CSV-Datei

Ich habe folgendes Dokument, in dem die extra x ticksmanuell definiert sind. Ich möchte jedoch die Ticks aus der CSV-Datei generieren lassen, bei der die zweite Spalte 1 ist, da die realen Datensätze viel größer sind als dieses Beispiel. Ich habe etwas mit probiert, from tableaber es hat nicht funktioniert. Ist das überhaupt möglich? Alternativ wäre ein Marker an der richtigen Position in den Daten eine akzeptable Lösung.

\documentclass[]{article}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{filecontents}{data.csv}
value,isChange
-1.18349,1
1.29675,0
3.33266,0
3.22086,0
2.29151,0
2.46577,0
2.41649,0
2.11641,0
2.46207,0
2.41293,0
2.10606,1
4.77804,0
6.199,0
4.7366,0
3.56816,0
4.38747,0
4.15053,0
4.04366,0
4.27493,0
4.2202,0
4.67526,1
\end{filecontents}
\begin{document}
\begin{figure}[H]
    \begin{tikzpicture}
    \begin{axis}[
        width=1\textwidth,height=0.4\textheight,
        extra x ticks = {0, 10, 20},
        extra tick style={grid=major, major grid style={red,thick}},
    ]
    \addplot[] table[x expr=\coordindex, y index=0,col sep=comma] {data.csv};
    \end{axis}
    \end{tikzpicture}
\end{figure}
\end{document}

Es ergibt sich folgendes Bild. Bildbeschreibung hier eingeben

Antwort1

Hier ein Vorschlag zur Verwendung der Markierung |aus der plotmarksBibliothek:

\documentclass[]{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\usetikzlibrary{plotmarks}
\begin{filecontents}{data.csv}
value,isChange
-1.18349,1
1.29675,0
3.33266,0
3.22086,0
2.29151,0
2.46577,0
2.41649,0
2.11641,0
2.46207,0
2.41293,0
2.10606,1
4.77804,0
6.199,0
4.7366,0
3.56816,0
4.38747,0
4.15053,0
4.04366,0
4.27493,0
4.2202,0
4.67526,1
\end{filecontents}
\begin{document}
\begin{figure}[htb]
  \begin{tikzpicture}
    \begin{axis}[
        width=1\textwidth,height=0.4\textheight,
        set layers,mark layer=like plot,% markers clipped
        clip mode=individual
      ]
      \addplot[
          only marks,mark=|,
          mark options={red,thick,mark size=\pgfkeysvalueof{/pgfplots/height}}
        ]table[
          x expr=\coordindex,y index=0,col sep=comma,
          restrict expr to domain={\thisrow{isChange}}{1:1}
        ]{data.csv};
      \addplot[] table[x expr=\coordindex,y index=0,col sep=comma] {data.csv};
    \end{axis}
  \end{tikzpicture}
\end{figure}
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen