同じ軸に奇数行と偶数行を別々にプロットしたいデータ ファイルがあります。ただし、table
オプションはデータの読み込み時に 1 回だけ適用されるようで、読み込みは軸ごとに 1 回だけ行われます (つまり、 の後、\nextgroupplot
データが再度読み込まれるか、新しい で読み込まれるようですtikzpicture
)。
\documentclass{article}
\usepackage{pgfplots}
\begin{filecontents}{data.dat}
1 1
2 4
3 3
4 8
\end{filecontents}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot[no markers] table[each nth point=2]{data.dat};
\addplot[only marks] table[each nth point=2, skip first n=1]{data.dat};
\end{axis}
\end{tikzpicture}
should be:
\begin{tikzpicture}
\begin{axis}
\addplot[no markers] table{
1 1
3 3
};
\addplot[only marks] table{
2 4
4 8
};
\end{axis}
\end{tikzpicture}
\end{document}
table
各コマンドのデータを強制的に再読み込みするオプションはありますか?
答え1
skip first n
キーはテーブルを読んだりタイプセットしたりするためのキーなので、キーを使って柔軟に座標をフィルタリングすることはできないと思いますpgfplotstable
。代わりに、フィルターを使用して奇数/偶数行を除外することができます。
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}
\begin{filecontents}{data.dat}
1 1
2 4
3 3
4 8
\end{filecontents}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot[no markers,each nth point=2] table {data.dat};
\addplot[only marks,x filter/.code={
\ifodd\numexpr\coordindex+1\relax
\def\pgfmathresult{}
\fi}
] table {data.dat};
\end{axis}
\end{tikzpicture}
\end{document}
もちろん、このコードを使用すると、独自のフィルターを(Mod(,)
などを使用して)作成できるため、とにかく実行可能です。