这是等高线图的 MWE。
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat = 1.7}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
% title = {$x \exp(-x^2-y^2)$}
, xlabel = $x$
, ylabel = $y$
, domain = -1:1
, y domain = -1:1
, enlargelimits
, view = {0}{90}
, x tick label style={
/pgf/number format/.cd,
fixed,
fixed zerofill,
precision=1,
/tikz/.cd
}
, y tick label style={
/pgf/number format/.cd,
fixed,
fixed zerofill,
precision=1,
/tikz/.cd
}
]
\addplot3[
contour gnuplot={
number = 10
},
thick
]
{
776.062 -50.812* x + 153.062 * y -76.812 *x *y
};
\end{axis}
\end{tikzpicture}
\end{document}
我有两个问题。我不知道如何放置 x 轴和 y 轴刻度标签(四边都有刻度标签)以及我的代码修剪图的顶部和左侧。任何帮助都将不胜感激。
答案1
Pgfplots 内置了对接收刻度标签的一个轴的支持。如果您希望在轴的两侧都有刻度标签,您可以在 sourceforge 上发布功能请求并等待其解决,或者为对面的站点生成第二个轴。
以下是采用第二轴的方法的解决方案:
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat = 1.7}
\begin{document}
\begin{tikzpicture}
\pgfplotsset{
set layers,% --- CF
, x tick label style={
/pgf/number format/.cd,
fixed,
fixed zerofill,
precision=1,
/tikz/.cd
}
, y tick label style={
/pgf/number format/.cd,
fixed,
fixed zerofill,
precision=1,
/tikz/.cd
},
}
\begin{axis}[
% title = {$x \exp(-x^2-y^2)$}
, xlabel = $x$
, ylabel = $y$
, domain = -1:1
, y domain = -1:1
, enlargelimits
, view = {0}{90}
, extra description/.code={% --- CF
\xdef\XMIN{\pgfkeysvalueof{/pgfplots/xmin}}
\xdef\XMAX{\pgfkeysvalueof{/pgfplots/xmax}}
\xdef\YMIN{\pgfkeysvalueof{/pgfplots/ymin}}
\xdef\YMAX{\pgfkeysvalueof{/pgfplots/ymax}}
},
]
\addplot3[
contour gnuplot={
number = 10
},
thick
]
{
776.062 -50.812* x + 153.062 * y -76.812 *x *y
};
\end{axis}
\begin{axis}[% --- CF
xmin=\XMIN,
xmax=\XMAX,
ymin=\YMIN,
ymax=\YMAX,
ticklabel pos=right,
]
\end{axis}
\end{tikzpicture}
\end{document}
如你所见,我使用 a 提取了常见选项\pgfplotsset
并写道二轴环境。此外,我自动记住了第一个轴的轴限值,并在第二个轴中复制了它们。请注意,该set layers
语句同步了两个轴的图层,这非常方便,特别是如果您计划添加网格线。该解决方案目前绘制了两次轴路径(标签除外)。这可以通过axis lines
语句来改进。
关于您关于“修剪”的问题:您能否在此处添加更多详细信息来说明您的意思?