![在 Tikz 中为绘制的函数添加图例](https://linux22.com/image/383883/%E5%9C%A8%20Tikz%20%E4%B8%AD%E4%B8%BA%E7%BB%98%E5%88%B6%E7%9A%84%E5%87%BD%E6%95%B0%E6%B7%BB%E5%8A%A0%E5%9B%BE%E4%BE%8B.png)
我在 Tikzpicture 中有 6 个函数,我想在左上角创建一个图例,以便所有颜色都用 p 的值来标识。
所以我想在一个框中创建一个图例,表示:黑色 p=0、绿色 p=0.025、红色 p=0.05、蓝色 p=0.1、洋红色 p=0.25、棕色 p=0.5(这将包括一条带有相应颜色的小线以及 p 值)。
我试过了\addlegendentry{hello}
,但这对我来说不起作用。我的代码如下。警告,比例很混乱,因为我将其精确地缩放到某个尺寸。
\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{pgfplots,fp}
\usetikzlibrary{fixedpointarithmetic}
\begin{document}
\begin{tikzpicture}[scale=0.225277]
\clip (-3.95,-2) rectangle (30,30);
{
\draw
plot[domain=0:30, range=0:30, variable=\x,samples=90]
({\x},{max(2*\x^2/(6.7+\x),0)});
\draw[green]
plot[domain=0:30, range=0:30, variable=\x,samples=90]
({\x},{max(2*\x^2.06/(\x^(2.06-0.9)+6.7+(\x^2.5)/1000),0)});
\draw[red]
plot[domain=0.9:30, range=0:30, variable=\x,samples=90]
({\x},{max(2*(abs(\x-0.9))^1.844/((abs(\x-0.9))^(1.844-0.9)+3.7+((abs(\x-0.9))^2.45)/500),0)});
\draw[blue]
plot[domain=1.7:30, range=0:30, variable=\x,samples=90]
({\x},{max(2*(abs(\x-1.7))^1.6/((abs(\x-1.7))^(0.7)+2.6+((abs(\x-1.7))^2.37)/500),0)});
\draw[magenta]
plot[domain=3.3:30, range=0:30, variable=\x,samples=90]
({\x},{max(2*(abs(\x-3.3))^1.07/((abs(\x-3.3))^(1.07-0.9)+1+((abs(\x-3.3))^2.1)/800),0)});
\draw[brown]
plot[domain=5.9:30, range=0:30, variable=\x,samples=90]
({\x},{max(2.15*(abs(\x-5.9))^0.88/((abs(\x-5.9))^(0.09)+1+((abs(\x-5.9))^2)/1000),0)});
}
\draw (0,0) rectangle (30,30);
\node at (28,-.9) {$v_1$};
\node at (-2.1,28) {$MRS$};
\end{tikzpicture}
\end{document}
答案1
由于您已经加载 pgfplots和要求一个图例,我无法抗拒,只是将你的代码翻译成 pgfplots。
\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}
\begin{axis}[domain=0:30,ymin=0,ymax=30,samples=90,legend pos=north west,no
marks,legend entries={1,...,6}]
\addplot {max(2*\x^2/(6.7+\x),0)};
\addplot[green] {max(2*\x^2.06/(\x^(2.06-0.9)+6.7+(\x^2.5)/1000),0)};
\addplot[red] {max(2*(abs(\x-0.9))^1.844/((abs(\x-0.9))^(1.844-0.9)+3.7+((abs(\x-0.9))^2.45)/500),0)};
\addplot[blue] {max(2*(abs(\x-1.7))^1.6/((abs(\x-1.7))^(0.7)+2.6+((abs(\x-1.7))^2.37)/500),0)};
\addplot[magenta] {max(2*(abs(\x-3.3))^1.07/((abs(\x-3.3))^(1.07-0.9)+1+((abs(\x-3.3))^2.1)/800),0)};
\addplot[brown] {max(2.15*(abs(\x-5.9))^0.88/((abs(\x-5.9))^(0.09)+1+((abs(\x-5.9))^2)/1000),0)};
\end{axis}
\end{tikzpicture}
\end{document}
当然,您可以添加更多有意义的图例条目,根据需要调整宽度和高度等等。