
Eu tenho uma pergunta a respeito pgfplots
. Eu tenho um arquivo CSV com pares xy. O arquivo CSV é muito grande (>10 mil entradas).
Quero traçar agora x
vs y
, mas apenas em algumas coordenadas x especificadas. Em outras palavras, quero usar um conjunto de dados reduzido do meu arquivo CSV original.
Por exemplo, suponha que x ultrapasse o intervalo [1.100] no arquivo de dados. Quero fazer um gráfico com as coordenadas x x1=0, x2=18, x3=76 and x4=89
. Existe alguma oportunidade de obter automaticamente os valores y correspondentes do arquivo CSV ou preciso extrair esses valores externamente (Excel, Octave, ...)?
Para tornar tudo ainda mais complicado: suponha que eu tenha um valor x em x=12.1
e em x=12.2
. Existe uma oportunidade de usar a localização do ponto mais próximo (neste caso x=12,1) se estivermos interessados no valor y correspondente em x=12,11?
Muito obrigado!
Responder1
Isso deve começar:
\documentclass{minimal}
\usepackage{csvsimple}
\usepackage{xifthen}
\newcommand{\execute}{\x,\y\par}
\begin{document}
\csvreader[head to column names]{test.csv}%
{}%empty block
{%x1=0, x2=18, x3=76 and x4=89
\ifthenelse{\x= 0}{\execute}{\relax}%
\ifthenelse{\x=18}{\execute}{\relax}%
\ifthenelse{\x=76}{\execute}{\relax}%
\ifthenelse{\x=89}{\execute}{\relax}%
}
\end{document}
Ele assume um test.csv
arquivo com duas colunas, a primeira rotulada x
e a segunda y
.
Se X nem sempre for um número inteiro e você quiser pular os valores intersticiais, será necessário arredondar antes de fazer o teste.