pgfplots:如何根据 x 和 y 值为二维多边形内部着色

pgfplots:如何根据 x 和 y 值为二维多边形内部着色

我想用渐变的颜色填充多边形内部。颜色应该从表达式的最低值(例如5x + 6y)到多边形区域内相同表达式的最高值变化。我环顾四周并找到了绘图surf,但似乎它只适用于 3D,如果我尝试使用它,那么我的轴就会变成 3D 并破坏整个图像。在 2D 绘图类型中似乎没有一个能完全满足我的要求,散点图是多个点(不是区域),网格图为一条线(再次不是区域)着色。pgfplots 手册第 145 页有一些我想要的绘图(2D 颜色渐变),只是它们的形状没有被多边形剪裁,并且它们的颜色不是由和的函数x定义y

答案1

\documentclass[tikz, border=1cm]{standalone}
\usetikzlibrary{shapes.geometric}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
\node[
regular polygon, regular polygon sides=5,
minimum size=4cm, inner sep=0pt,
draw, thick,
path picture={
\path;
\begin{axis}[
anchor=center,
width=4cm, height=4cm, scale only axis,
view={0}{90},
xmin=-1, xmax=1,
ymin=-1, ymax=1, 
hide axis,
]
\addplot3[
surf, shader=interp,
domain=-1:1, samples=20,
y domain=-1:1, samples y=20,
point meta=5*x+6*y
] (x,y,0);
\end{axis}
}]{};
\end{tikzpicture}
\end{document}

蓝色、红色和黄色色调的阴影五边形

相关内容