我想根据数据集在 pgfplot 中创建填充轮廓图我的数据
我得到一张像这样的丑陋的照片:
我使用的代码是
\documentclass{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{colorbrewer,patchplots}
\pgfplotsset{compat=newest}
\pgfplotsset{
colormap={parula}{
rgb255=(53,42,135)
rgb255=(15,92,221)
rgb255=(18,125,216)
rgb255=(7,156,207)
rgb255=(21,177,180)
rgb255=(89,189,140)
rgb255=(165,190,107)
rgb255=(225,185,82)
rgb255=(252,206,46)
rgb255=(249,251,14)}}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
height=9cm,
width=15cm,
view={0}{90},
mesh/ordering=x varies,
mesh/cols=66,
mesh/rows=61,
xtick={1,1.5,2,2.5,3,3.5,4},
colorbar,
ymin=350,
ymax=1000,
point meta min=0.1,
point meta max=30,
colorbar sampled,
colorbar style={ylabel=$z$},
xlabel=$x$,
ylabel=$y$,
shader=interp]
%\addplot3[surf] table[x=x, y=y, z=z] {mydata.dat};
%\addplot3[contour gnuplot={number = 20,labels={false}}] table[x=x, y=y, z=z] {mydata.dat};
\addplot3[contour filled={number = 20,labels={false}}] table[x=x, y=y, z=z] {mydata.dat};
\end{axis}
\end{tikzpicture}
\end{document}
我想要的是一个带有“硬边”的填充轮廓图,此代码给了我如此漂亮的硬边,但我无法填充轮廓之间的区域。
\addplot3[contour gnuplot={number = 20,labels={false}}] table[x=x, y=y, z=z] {mydata.dat};
使用 gnuplot 的示例图
我已经发现这tread,它展示了如何使用 Asimptote 创建函数的填充轮廓图。我有一个数据集而不是一个函数,不知道如何将 Asimptote 与数据集一起使用。
有人能帮助我实现这个吗?
答案1
我意识到这是一个老问题,但是我在同一个问题上浪费了很多时间,所以我开始吧......
答案似乎在于您的 PDF 查看器。 pgfplots 手册在填充轮廓图上说明了以下内容:
注意:查看器限制 以下段落使用了一些免费查看器(包括 pdf.js 和 evince)不支持的 pdf 功能。如果您看到意外结果,请使用合适的查看器。
您的数据集不再可用,因此我无法编译您的代码来向您展示在兼容的查看器中查看时它是什么样子。我在 StackExchange 上找到了另一个问题的答案:
\documentclass[tikz,border=3pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
domain=-2:2,
view={0}{90},
colorbar right,
colorbar style={%
ytick=data,
}
]
\addplot3[contour filled={number=13}]
{exp(-x^2-y^2)*x+0.5};
\end{axis}
\end{tikzpicture}
\end{document}
答案2
目前不支持填充轮廓线之间的空间格努普特。
不过,也可以使用以下方法绘制轮廓线,并在中间填充空格进取和普格夫解释这线。