多边形意外缩放

多边形意外缩放

我想在一个 x 和 y 都介于 0 到 10 之间的绘图中对角位于 (0,0)、(10,5)、(10,10) 和 (5,10) 的多边形进行阴影处理,为此,我使用了以下代码

\documentclass{article}
\usepackage{tikz,pgfplots}

\begin{document}
 \begin{figure}
  \begin{tikzpicture}
   \begin{axis}[ 
     axis x line=bottom,
     axis y line=left,
     ticks=none,
     xmin=0,xmax=10,
     ymin=0,ymax=10,
     ]
     \addplot[draw=none,fill=gray!30!white] (0,0) -- (10,5) -- (10,10) -- (5,10) -- cycle;
   \end{axis}
  \end{tikzpicture}
 \end{figure}

\end{document}

得出的结果是

在此处输入图片描述

尽管多边形的形状符合预期,但它比我预期的要小得多。就好像它以某种方式被缩小了一样。我做错了什么?

答案1

在文档的序言中添加\pgfplotsset{compat=1.18}(或其他足够新的版本号)。如果您没有设置,您实际上应该会收到一条警告,提示compat您“正在向后兼容模式下运行”。

在这个具体案例中,这意味着什么?在旧版本的 PGFPlots 中,常规\path构造中的坐标使用与环境不同的坐标系axis,除非您axis cs:在相关坐标前面明确添加(例如(axis cs:10,10))。今天,如果您没有通过选项声明足够新的版本compat,出于兼容性原因,将保留此行为。在较新版本的 PGFPlots 中,您不需要声明axis cs,但您需要为此设置。要了解更多信息,请在手册或本网站上compat查找axis cs和。compat

通过添加这一行,您的代码将按预期工作(请注意,pgfplots已经加载tikz,因此无需单独加载):

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}

\begin{document}
 \begin{figure}
  \begin{tikzpicture}
   \begin{axis}[ 
     axis x line=bottom,
     axis y line=left,
     ticks=none,
     xmin=0, xmax=10,
     ymin=0, ymax=10,
   ]
     \addplot[draw=none, fill=gray!30] (0,0) -- (10,5) -- (10,10) -- (5,10) -- cycle;
   \end{axis}
  \end{tikzpicture}
 \end{figure}
\end{document}

在此处输入图片描述

相关内容