从文件或表格绘图时为不同的数据集定义不同的范围

从文件或表格绘图时为不同的数据集定义不同的范围

我想绘制存储在文本文件(制表符分隔)中的多个数据集的图表。有没有办法定义应绘制某些(不是全部)数据集的 x 范围?我希望某些数据集能够完全绘制,而其他数据集只能在指定范围内绘制。

请考虑以下示例:

桌子:

倍数

1 3 4 5

2 4 6 3

3 4 7 4

4 5 7 2

应这样绘制,即 B 列和 C 列的所有四个值都应根据 x 值绘制,但对于 D 列,只应绘制 x 在范围 [2,3] 内的值。

换句话说,我想在同一个轴环境中使用 \addplot 三次,并为每个数据集分别定义 x 范围。

条件不能是索引。我需要将其用于大型数据文件,但我不知道所需数据点的索引。因此,定义要绘制的点的输入必须是 x 间隔。

答案1

您可以使用键restrict x to domain=<start>:<end>,它会安装一个过滤器,删除指定范围之外的所有数据点:

\documentclass{article}

\usepackage{pgfplots}

\pgfplotstableread{
x B C D
1 3 4 5
2 4 6 3
3 4 7 3
4 5 7 2
}\datatable

\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot table [y=B] {\datatable};
\addplot table [y=C] {\datatable};
\addplot +[restrict x to domain=2:3] table [y=D] {\datatable};
\end{axis}
\end{tikzpicture}
\end{document}

相关内容