pgfplots: Trazar una subfigura por país, desde un archivo de datos

pgfplots: Trazar una subfigura por país, desde un archivo de datos

Tengo datos en formato csv a nivel de país-año y, usando pgfplots, me gustaría trazar una variable determinada a lo largo del tiempo, con una subfigura por país. Mi idea era utilizar un groupplotentorno: y un bucle interno, que recorrería el conjunto de países y "filtraría" datos para mantener un solo país.

El problema es que ni siquiera puedo filtrar datos para mantener un solo país. Este es mi ejemplo (no) funcional, adaptado de estepregunta, tratando de filtrarcountry == GER

\documentclass{standalone}
\usepackage{filecontents}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.7}
\usepackage{pgfplotstable}

\begin{filecontents}{CountryYears.csv}
    country,year,vartoplot
    AUT,1998,.1
    AUT,1999,.2
    AUT,2000,.7
    GER,1999,.4
    GER,2000,.45
    GER,2001,.7
    GER,2002,.6
    FRA,2000,.5
    FRA,2001,.75
    FRA,2002,.57894
    FRA,2003,.549
\end{filecontents}

\begin{document}
    \pgfplotstableset{columns/country/.style={string type}}
    \pgfplotstableread[col sep=comma]{CountryYears.csv}\loadeddata

      \begin{tikzpicture}
      \begin{axis}[
      x filter/.code={\pgfplotstablegetelem{\coordindex}{country}\of{\loadeddata}
        \pgfmathtruncatemacro{\tempva}{\pgfplotsretval == GER ? 1: 0}
        \ifnum\tempva>0%true
        \else%false
        \def\pgfmathresult{}
        \fi
      },
      ]
      \addplot[only marks] table[x=year,y=vartoplot] {\loadeddata};
      \end{axis}
      \end{tikzpicture}
\end{document}

Sospecho que no funciona porque estoy intentando filtrar en una columna de cadena. (El que contiene el país). Pero ni siquiera estoy seguro de eso. De todos modos, agradecería algunos consejos sobre el problema del filtrado o quizás alguna sugerencia sobre un enfoque más elegante para hacer estos subgrafos de países.

Respuesta1

Primero defina una cadena de la siguiente manera:

\def\AUTstring{AUT}

y luego escribe tu filtro como

    x filter/.code={
        \pgfplotstablegetelem{\coordindex}{country}\of{\loadeddata}
        \ifx\pgfplotsretval\AUTstring
        \else
            \pgfmathparse{inf}
        \fi
    }

Es decir, si \pgfplotsretvales así AUT, entonces no hagas nada. De lo contrario, abandone este punto.

información relacionada