pgfplots: Построение графика одной подфигуры для каждой страны из файла данных

pgfplots: Построение графика одной подфигуры для каждой страны из файла данных

У меня есть данные в формате csv на уровне страна-год, и с помощью pgfplots я хотел бы построить график данной переменной с течением времени с одной подцифрой на страну. Моя идея состояла в том, чтобы использовать среду groupplot: и цикл внутри, который будет проходить по набору стран и «отфильтровывать» данные, чтобы оставить только одну страну.

Проблема в том, что я даже не могу отфильтровать данные, чтобы сохранить только одну страну. Это мой (не)рабочий пример, адаптированный из этоговопрос, пытаясь отфильтровать поcountry == 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}

Я предполагаю, что это не работает, потому что я пытаюсь отфильтровать по столбцу строки? (Тот, который содержит страну.) Но даже в этом не уверен. Кстати, я был бы признателен за некоторые указания относительно проблемы фильтрации или, возможно, за предложения по более элегантному подходу к созданию этих подграфов стран.

решение1

Сначала определите строку следующим образом:

\def\AUTstring{AUT}

и затем напишите свой фильтр как

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

То есть, если \pgfplotsretvalесть AUT, то ничего не делать. В противном случае пропустить этот пункт.

Связанный контент