pgfplots:绘制较小范围的表格并仍然使用largelimits = true

pgfplots:绘制较小范围的表格并仍然使用largelimits = true

我正在使用 pgfplots 绘制表格文件中相同数据的两个简单 (x,y) 图。第一个图显示所有数据点,在第二个图中,我想放大某些特定范围的数据。但是,当我使用xminxmax限制范围时,第一个点和最后一个点会放在轴框上。我想在轴和点之间添加一点空间,因此我尝试设置,enlargelimits=true但范围之外的点会显示出来,并且不会像我想象的那样被剪掉。

有没有办法做到这一点而不必将所需的数据点复制到新表中?

这是我尝试做的一个例子:我有数据文件plotdata.dat

# plotdata.dat
x   y
0   0
1   1
2   4
3   9
4   16
5   25
6   36
7   49
8   64
9   81
10  100
11  121
12  144

我的乳胶文档如下所示:

\documentclass[11pt]{article}
\usepackage{tikz}
\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
\begin{axis}[xmin=1, xmax=11, enlargelimits=true]
\addplot[only marks] table[x index=0, y index=1] {plotdata.dat};
\end{axis}
\end{tikzpicture}

\end{document}

然后,即使xmin=1绘图也显示了x=0点。我不想只设置轴限制,以便只显示范围,而是忽略范围之外的点...

答案1

显示的范围与正在显示的数据点集无关。

换句话说:即使你选择xmin并且xmax所有数据点,pgfplots 仍然会绘制每一个数据点。

如果您想要选择/丢弃数据点的子集,则应该研究过滤机制,特别是:restrict x to domain=1:9999具有适当值的键。过滤意味着删除单个坐标。unbounded coords=discard|jump键控制 pgfplots 应如何反应(要么好像它根本没有看到丢弃的点,要么通过引入跳跃)。

相关内容