我尝试在 tex 上的大量 pgfplots 问题列表中查找信息,但没有成功,所以这是初学者关于pgfplots
、、、组合包的“另一个问题”。standalone
geometry
tikz
我需要了解两个用例才能提出我的论点:
- (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}