我尝试使用 和 绘制等高线图pgfplots
,gnuplot
但出现错误“尺寸太大”。为什么?这似乎是 TeX 错误,我以为gnuplot
是在进行计算?
\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
width=0.8\textwidth,
view={0}{90},
grid=major,
xlabel = $x$,
ylabel = $y$,
xmin=-2,
ymin=-2,
xmax=+2,
ymax=+2,
unit vector ratio = 1,
]
\addplot3[
contour gnuplot={
number=10,
contour label style={
nodes={text=black}
}
},
contour/draw color={black},
contour/label distance=1000pt,
thick,
samples=50]
{ 3*x^2 + 4*y^3 + 2*x^3 - 12*y };
\end{axis}
\end{tikzpicture}
\end{document}
如果我添加restrict z to domain=-20:30
(应该包含f(x,y)=3*x^2 + 4*y^3 + 2*x^3 - 12*y
给定域中的所有相关输出值),则会产生输出,但只有一个轮廓(而不是10
所需的轮廓)。
我期待类似的事情:
答案1
我猜想,即使我指定了xmin=-2
,xmax=+2
,ymin=-2
,ymax=+2
, 仍然会在此范围之外进行采样。如果我使用和pgfplots
明确指定域,则编译可以成功。domain=-2:2
y domain=-2:2
不过,我真的以为gnuplot
我在计算吗?那么为什么尺寸太大了?
\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
width=0.8\textwidth,
view={0}{90},
grid=major,
xlabel = $x$,
ylabel = $y$,
xmin=-2,
ymin=-2,
xmax=+2,
ymax=+2,
unit vector ratio = 1,
]
\addplot3[
contour gnuplot={
number=10,
contour label style={
nodes={text=black}
}
},
contour/draw color={black},
contour/label distance=1000pt,
thick,
domain = -2:2,
y domain = -2:2,
samples=50]
{ 3*x^2 + 4*y^3 + 2*x^3 - 12*y };
\end{axis}
\end{tikzpicture}
\end{document}