使用 pgfplots 独立几何和 tikz 包的一个非常简单的定位问题

使用 pgfplots 独立几何和 tikz 包的一个非常简单的定位问题

我尝试在 tex 上的大量 pgfplots 问题列表中查找信息,但没有成功,所以这是初学者关于pgfplots、、、组合包的“另一个问题”。standalonegeometrytikz

我需要了解两个用例才能提出我的论点:

简单示例

  • (1)如何将一个图形置于 A4 纸的中央,
  • (2)如何在 A4 纸上添加多个图形

我找到了多个使用 2 个图形的示例,但我的问题使用 3D 图形,我无法只给出一个 x 宽度,tikz 需要定义所有:x、y、z。这是一个问题,我不想手动输入所有图形尺寸...

在我的简单 MWE 中,我只尝试了第一个选项 (1),但在正确调整图形大小时遇到​​了一些问题,我尝试width=\linewidth自动将图形大小调整为页面宽度,但没有成功。Arg,请帮帮我。

\documentclass{standalone}
\usepackage[a4paper]{geometry}
\usepackage{amsmath}
\usepackage{pgfplots}
\usepackage{varwidth}

\pgfplotsset{compat=1.8}

\pgfplotsset{
  compat=1.8,
  colormap={whitered}{color(0cm)=(white); color(2cm)=(orange!75!red)}
}

\begin{document}

\begin{tikzpicture}
  \begin{axis}
  [view={210}{60},
  width=0.5\linewidth
  ]
  colormap name=whitered
  ]
    \addplot3[surf, draw=black, mesh/ordering=y varies] {x*(1-x)*y*(1-y)};
  \end{axis}
\end{tikzpicture}
\end{document}

答案1

standalone用于生成图像独立字面意思。使用geometry包并试图强加a4paper是没有意义的。您应该使用像这里这样的标准类之一article。最有可能的是,您将需要为图形添加标题,因此使用figure允许您添加标题的环境是有意义的。然后,您可以使用它\centering来将图形居中。

\documentclass{article}
\usepackage[a4paper]{geometry}
\usepackage{amsmath}
\usepackage{pgfplots}
\usepackage{varwidth}

\pgfplotsset{compat=1.8}

\pgfplotsset{
  compat=1.8,
  colormap={whitered}{color(0cm)=(white); color(2cm)=(orange!75!red)}
}

\begin{document}
\begin{figure}[htb]
\centering
\begin{tikzpicture}
  \begin{axis}
  [view={210}{60},
%  width=0.5\linewidth,   %% not needed
  colormap name=whitered ] 
    \addplot3[surf, draw=black, mesh/ordering=y varies] {x*(1-x)*y*(1-y)};
  \end{axis}
\end{tikzpicture}
\end{figure}
\end{document}

在此处输入图片描述

将两个图并排放置是这里的一个更详细的方面,需要更多的信息,例如是否需要单独的标题等。最简单的方法是将它们放在这样:

\documentclass{article}
\usepackage[a4paper]{geometry}
\usepackage{amsmath}
\usepackage{pgfplots}
\usepackage{varwidth}

\pgfplotsset{compat=1.8}

\pgfplotsset{
  compat=1.8,
  colormap={whitered}{color(0cm)=(white); color(2cm)=(orange!75!red)}
}

\begin{document}
\begin{figure}[htb]
\centering
\begin{tikzpicture}
  \begin{axis}
  [view={210}{60},
  width=0.5\linewidth,  %% now needed
  colormap name=whitered ] 
    \addplot3[surf, draw=black, mesh/ordering=y varies] {x*(1-x)*y*(1-y)};
  \end{axis}
\end{tikzpicture}
% second graphic↓ don't leave blank line
\begin{tikzpicture}
  \begin{axis}
  [view={210}{60},
  width=0.5\linewidth,  %% now needed
  colormap name=whitered ]
    \addplot3[surf, draw=black, mesh/ordering=y varies] {x*(1-x)*y*(1-y)};
  \end{axis}
\end{tikzpicture}
\end{figure}
\end{document}

在此处输入图片描述

相关内容