曲线上的取几个样例点,如何与一组等高线图里的局部位置一一对应。
像例图所表达的类似含义,在蓝色曲线下面如何添加出来?
\documentclass[tikz,border=2mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
\draw [blue,thick,
declare function={
lines(\t,\a,\b,\c)=0.5*(sin((\t r))+sin((\t r)*\a)+sin((\t r)*\b))+cos((\t r)*\c)+0.036*exp(\t);
}]
plot [domain=-pi:pi, samples=60,smooth] (\x,{lines(\x,4,2,0.2)});
\end{tikzpicture}
\end{document}
编译下面的代码
\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{plotmarks}
\usepackage{tikz-3dplot}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot3 [
domain=0:1,
samples=10,
contour/number=5,
contour gnuplot,
]
{sin(deg(2*pi*x))* exp(-10*(y-0.5)^2) + exp(-(x-0.5)^2*10 - (y-0.25)^2 - (x-0.5)*(y-0.25))};
\end{axis}
\begin{axis}
\addplot3 [
domain=0:1,
samples=10,
contour gnuplot={contour dir=y,levels=0.5},
]
{sin(deg(2*pi*x))* exp(-10*(y-0.5)^2) + exp(-(x-0.5)^2*10 - (y-0.25)^2 - (x-0.5)*(y-0.25))};
\end{axis}
\end{tikzpicture}
\end{document}
后, 在主文件目录下会有两个 .table
文件, 其中就是绘制等高线的数据, 如果不嫌麻烦的话, 可以利用这些数据绘制需要的图形. 问题中的图形是平面图形, 只用到 .table
文件中的第一, 第二列数据.
如果觉得图形不够精确, 可以尝试增加 sample 的数量.
用texlive2023+vscode编译,出错,也没有生成.table文件,这啥原因呢?
@U7117
不懂 vscode, 我是这么做的:
.table
文件, 可以打开看看用 gnuplot 处理一下
.script
文件试试