以下是 MWE:
\documentclass[12pt,letterpaper]{article}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}
\begin{document}
\begin{tikzpicture}
\begin{axis}[view={0}{90}, clip = false, xmin = -2, xmax = 2, ymin = -2, ymax = 2, grid=major, xlabel=$x$, ylabel=$y$]
\addplot +[no markers,
raw gnuplot,
contour prepared,
] gnuplot {
set samples 50, 50;
set isosamples 51, 51;
set contour base;
set cntrparam levels incremental -4,0.25,4;
set style data lines;
splot [-2:2] [-2:2] 0.2*x**5 - 0.25*x**4 + 0.5*y**2;
};
\end{axis}
\end{tikzpicture}
\end{document}
它的输出有非常混乱的标签:
我有一个想法可以把它清理干净:使用colorbar
,其中线条颜色由其轮廓图级别决定(因此,不是其 y 轴值)。查看手册pgfplots
,我不清楚如何选择确定颜色的值作为轮廓图 z 值(编辑:嗯,point meta
似乎是这样,但这是我目前所知道的全部)。我该怎么做?
如果我能弄清楚发生了什么,那么以下问题及其答案似乎是相关的:pgfplots colorbar 的映射网格颜色
答案1
我不知道为什么,但colorbar
会自动访问 z 值(我猜,是轮廓图附带的元点?)。因此,关闭标签,并像往常一样使用颜色条命令,就可以让一切按我想要的方式运行:
\documentclass[12pt,letterpaper]{article}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}
\begin{document}
\begin{tikzpicture}
\begin{axis}[view={0}{90}, clip = false, xmin = -2, xmax = 2, ymin = -2, ymax = 2, grid=major, xlabel=$x$, ylabel=$y$, colorbar, point meta min = -4, point meta max = 3]
\addplot +[no markers,
raw gnuplot,
contour prepared, contour/labels=false,
] gnuplot {
set samples 50, 50;
set isosamples 51, 51;
set contour base;
set cntrparam levels incremental -4,0.25,4;
set style data lines;
splot [-2:2] [-2:2] 0.2*x**5 - 0.25*x**4 + 0.5*y**2;
};
\end{axis}
\end{tikzpicture}
\end{document}
我希望有人可以进一步解释一下!