我正在使用 pgfplots 绘制表格文件中相同数据的两个简单 (x,y) 图。第一个图显示所有数据点,在第二个图中,我想放大某些特定范围的数据。但是,当我使用xmin
和xmax
限制范围时,第一个点和最后一个点会放在轴框上。我想在轴和点之间添加一点空间,因此我尝试设置,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 应如何反应(要么好像它根本没有看到丢弃的点,要么通过引入跳跃)。