我刚刚遇到了一个非常奇怪的 pgfplots 问题。考虑一下这个 MWE:
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
domain=0:5,
xmin=0, xmax=3,
ymin=0, ymax=3.5,
samples=500,
width=11cm,
height=6cm,
axis y line=center,
axis x line=middle,
ytick={1},
xtick={1}
]
\addplot[red, very thick, mark=none] {x^2/sqrt((1-x^2)^2)};
\end{axis}
\end{tikzpicture}
\end{document}
在我尝试过的每个 PDF 阅读器中,其呈现效果都是这样的(意料之中):
但是当我打印它时,它看起来像这样(扫描):
我使用不同的机器、不同的打印机和不同的 Adobe Reader 版本(Acrobat Reader XI Pro 和 Acrobat Reader DC)打印过。结果总是一样,所以这不是驱动程序/打印机问题。从 Firefox 打印没问题,但由于我正在处理很多人要打印的讲义,所以告诉大家“不要使用 Adobe Reader”并不是解决办法。
我只是想知道为什么会发生这种情况以及我可以做些什么来避免它。
(我知道这有点难以调试,因为它涉及打印。)
我已经尝试过修改图表,发现只要我在分母中添加一些使定义间隙消失的东西,不仅顶部水平线会消失,而且底部的两条线也会消失。但这不是一般的定义间隙问题,我还有其他一些图表,它们打印得很好。
答案1
我遇到了类似的问题,并找到了以下解决方案:将restrict x to domain = 0:10
和restrict y to = 0:10
添加到您的轴环境中。域范围的选择应包括您的绘图的整个范围。例如,如果您想从 (0:0) 绘制到 (2:2),请选择从 -1 到 3 的域,以便轴上的边框也能绘制出来。因此,您的 MWE 将如下所示:
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
domain=0:5,
xmin=0, xmax=3,
ymin=0, ymax=3.5,
samples=500,
width=11cm,
height=6cm,
axis y line=center,
axis x line=middle,
ytick={1},
xtick={1},
restrict x to domain = 0:4,
restrict y to domain = 0:4
]
\addplot[red, very thick, mark=none] {x^2/sqrt((1-x^2)^2)};
\end{axis}
\end{tikzpicture}
\end{document}