Cómo cargar ticks adicionales desde un archivo CSV

Cómo cargar ticks adicionales desde un archivo CSV

Tengo el siguiente documento, donde extra x ticksse definen manualmente. Sin embargo, quiero generar los ticks a partir del archivo CSV donde la segunda columna es 1 porque los conjuntos de datos reales son mucho más grandes que este ejemplo. Intenté algo from tablepero no logré que funcionara. ¿Es posible en absoluto? Alternativamente, un marcador en la posición correcta de los datos sería una solución aceptable.

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

Esto da como resultado la siguiente imagen. ingrese la descripción de la imagen aquí

Respuesta1

Aquí hay una sugerencia usando la marca |de la plotmarksbiblioteca:

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

ingrese la descripción de la imagen aquí

información relacionada