假设$x$
和$z$
是区间内的变量$[0,1]^2$
。如何绘制以下集合并为其着色并提供图例?
$c1 \quad if 0<x<1/13*(5-2sqrt(3)),0<z<1/2(2x+x^2)+1/2sqrt(4x^3+x^4)$
$c2 \quad if 0<x<1/13*(5-2sqrt(3)),1/2(2x+x^2)+1/2sqrt(4x^3+x^4)<z<2x$
答案1
这是一个非常基本的版本。当然,添加一些键可以使事情变得更简单。基本上,您需要为上限和下限添加两个图,然后遮蔽它们之间的区域。(forget plot
只是意味着辅助图不会在图例中提及。)
\documentclass[tikz,border=3mm]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{fillbetween}
\pgfplotsset{width=6cm,height=6cm,compat=1.17}
\begin{document}
\begin{tikzpicture}
\begin{axis}[axis lines=middle,no marks,
xmin=0,xmax=1,ymin=0,ymax=1,
xlabel={$x$},ylabel={$y$},
xtick distance=0.25,ytick distance=0.25]
\begin{scope}[domain=0:{(5-2*sqrt(3))/13}]
\addplot[forget plot,name path=c1a] {0};
\addplot[forget plot,name path=c1b] {(2*x+x^2)/2+sqrt(4*x^3+x^4)/2};
\addplot fill between[of=c1a and c1b];
\addlegendentry{$c_1$}
\addplot[forget plot,name path=c2a] {(2*x+x^2)/2+sqrt(4*x^3+x^4)/2};
\addplot[forget plot,name path=c2b] {2*x};
\addplot fill between[of=c2a and c2b];
\addlegendentry{$c_2$}
\end{scope}
\end{axis}
\end{tikzpicture}
\end{document}