我目前拥有的

我目前拥有的

我目前正在尝试制作拓扑图像。虽然这对内容来说并不重要,但我认为平滑的邻域看起来更好。

我目前拥有的

在此处输入图片描述

\documentclass[varwidth=true, border=2pt]{standalone}
\usepackage{tikz}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}[>=stealth,]
    \begin{axis}[
        axis x line=middle,
        axis y line=middle,
        %width=9cm,
        %height=4.5cm,
        xmin=-1,     % start the diagram at this x-coordinate
        xmax= 5,    % end   the diagram at this x-coordinate
        ymin=-1,     % start the diagram at this y-coordinate
        ymax= 5,   % end   the diagram at this y-coordinate
        xlabel=$X_1$,
        ylabel=$X_2$,
        ticks=none,
        enlargelimits=true,
        after end axis/.code={
            \draw [decorate,decoration={brace,mirror,raise=15pt}] (axis cs:0,3.6) -- (axis cs:0,2.5) node [midway,left=20pt] {$U_2$};
            \draw [decorate,decoration={brace,mirror,raise=12pt}] (axis cs:1.5,0) -- (axis cs:2.5,0) node [midway,below=16pt] {$U_1$};
        }]

        \addplot[mark=none, orange, smooth, thick, fill=orange!30] coordinates {(1,1) (2,0.5) (3,1.5) (3,2) (3.5,3) (3.2, 5) (2.2, 4.7) (1.5, 4.2) (1.1, 3.9) (0.9, 2.5) (1,1)};
        \node[orange] at (axis cs:4,4) [anchor=south] {$U$};

        % Draw help lines
        \addplot[dashed] coordinates {(1.5,0) (1.5,3.6)};
        \addplot[dashed] coordinates {(2.5,0) (2.5,3.6)};
        \addplot[dashed] coordinates {(0,2.5) (2.5,2.5)};
        \addplot[dashed] coordinates {(0,3.6) (2.5,3.6)};

        % Draw solid square
        \addplot[mark=none, red, thick, fill=red!30] coordinates {(2.5,2.5) (2.5,3.6) (1.5,3.6) (1.5,2.5) (2.5,2.5)};

        % Draw x and annotation
        \node[blue] at (axis cs:2,3) [anchor=south west] {$x$};
        \addplot[mark=*, blue] coordinates {(2,3)};

        % Draw ticks of help lines
        \addplot[mark=none, red, thick] coordinates {(1.5, -0.1) (1.5,0.1)};
        \addplot[mark=none, red, thick] coordinates {(2.5, -0.1) (2.5,0.1)};
        \addplot[mark=none, red, thick] coordinates {(-0.1, 2.5) (0.1,2.5)};
        \addplot[mark=none, red, thick] coordinates {(-0.1, 3.6) (0.1,3.6)};

        % Draw axis text
        \node[blue] at (axis cs:0,3) [anchor=east] {$x_2$};
        \node[blue] at (axis cs:2,0) [anchor=north] {$x_1$};

    \end{axis} 
\end{tikzpicture}
\end{document}

我想要的是

我希望橙色邻域更加平滑。U 的实际形状并不重要,只要包含红色方块即可。我怎样才能使 U 更平滑?

答案1

一种可能性是将您的选项更改smoothsmooth cycle。如果您使用,smooth cycle则必须删除列表的最后一个坐标 (1,1)。

\addplot[mark=none, orange, smooth cycle, thick, fill=orange!30] coordinates {%
   (1,1) (2,0.5) (3,1.5) (3,2) (3.5,3) (3.2, 5) (2.2, 4.7) 
   (1.5, 4.2) (1.1, 3.9) (0.9, 2.5) };

其结果将是:

在此处输入图片描述

相关内容