plotar dados com pgfplots se a metacoluna atender aos critérios

plotar dados com pgfplots se a metacoluna atender aos critérios

Eu tenho um arquivo de dados com muitas colunas e quero plotar bwgstar vs servidores para n = 2. Portanto, n é a metacoluna, os servidores estão no eixo x e o bwgstar está no eixo y. Quero fazer isso no documento látex para poder regenerar os dados mais tarde.

Uma versão abreviada de alguns dados aparece abaixo.

  k    n    servers   switches   degree   diameter   bwg      bwgstar   difference   t
  2    2    8         4          2        4          2        2         0            1
  2    3    36        9          4        5          8        6         2            3
  2    4    96        16         6        5          16       16        0            8
  2    5    200       25         8        5          36       30        6            10
  2    6    360       36         10       5          54       54        0            13
  2    7    588       49         12       5          96       84        12           21
  3    2    24        8          3        6          4        4         0            4
  3    3    162       27         6        7          26       22        4            10
  3    4    576       64         9        7          64       64        0            32

Responder1

Você pode adaptar a abordagem deFiltrar linhas de uma tabela:

\documentclass[border=5mm]{standalone}

\usepackage{filecontents}

\usepackage{pgfplots}
\pgfplotsset{
    discard if not/.style 2 args={
        x filter/.code={
            \ifnum\thisrow{#1}=#2
            \else
                \def\pgfmathresult{nan}
            \fi
        }
    }
}

\begin{filecontents}{data.dat}
k    n    servers   switches   degree   diameter   bwg      bwgstar   difference   t
  2    2    8         4          2        4          2        2         0            1
  2    3    36        9          4        5          8        6         2            3
  2    4    96        16         6        5          16       16        0            8
  2    5    200       25         8        5          36       30        6            10
  2    6    360       36         10       5          54       54        0            13
  2    7    588       49         12       5          96       84        12           21
  3    2    24        8          3        6          4        4         0            4
  3    3    162       27         6        7          26       22        4            10
  3    4    576       64         9        7          64       64        0            32
\end{filecontents}

\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot [only marks] table [x=bwgstar, y=servers, discard if not={n}{2}] {data.dat};
\end{axis}
\end{tikzpicture}
\end{document}

informação relacionada