我知道 TeX.SX 上已经回答了大量类似的问题,但奇怪的是,我找不到适合我目的的。为此,如果这篇文章与我不知道的其他文章重复,我深表歉意。
MWE如下:
\documentclass{article}
\usepackage{mathtools}
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage{xcolor}
\setlength{\parindent}{0cm}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xlabel=$x$,ylabel=$y$,
xmin=-15,xmax=15,ymin=-10,ymax=10, axis lines=center, axis equal, scale=1.6]
\addplot[domain=-15:15, color=blue, samples=400](\x,{\x + 1});
\addplot[domain=-15:15, color=red, samples=400](\x,{4});
\addplot[domain=-15:15, color=green, samples=400](\x,{-1/2*\x - 2});
\node at (axis cs:-2,-1) [circle, scale=0.4, draw=black!80,fill=black!80] {};
\node at (axis cs:3,4) [circle, scale=0.4, draw=black!80,fill=black!80] {};
\node at (axis cs:-12,4) [circle, scale=0.4, draw=black!80,fill=black!80] {};
\node at (axis cs:-2,0) {$P_1$};
\node at (axis cs:3,5) {$P_2$};
\node at (axis cs:-12,5) {$P_3$};
\end{axis}
\end{tikzpicture}
\end{document}
其结果为:
我想知道如何为这三个线性函数定义的多边形(或简单地说是三角形)着色。所有类似问题的答案都只讨论了两个“对象”之间的关系,而不是三个。我尝试了很多方法,但都没有成功。如果你能帮助我,我将不胜感激。
答案1
您在顶点处有节点,命名它们并使用\fill
。请注意,您需要指定center
节点的锚点。其他评论:
- 您正在绘制直线,400 个样本比您需要的多 398 个。这只会使生成 PDF 的速度慢得多。
- 为点创建样式可以使代码更短。
label
您可以向点中添加,而不是添加新节点。- TikZ (由 加载
pgfplots
)会加载xcolor
,因此您不必明确加载它。 - 有了,
pgfplots
您就不需要使用\x
,只需使用就足够了。而且,只要您只是针对 进行一些绘图,那么x
编写 也足够了。您使用的语法 ,工作正常,但在这里不是必需的。\addplot {f(x)};
x
\addplot ({x(t)}, {y(t)});
\documentclass{article}
\usepackage{mathtools}
\usepackage{pgfplots}
\setlength{\parindent}{0cm}
\begin{document}
\begin{tikzpicture}[
dot/.style={
circle, inner sep=0pt,minimum size=3pt, draw=black!80,fill=black!80,label=#1
}]
\begin{axis}[
xlabel=$x$,ylabel=$y$,
xmin=-15,xmax=15,
ymin=-10,ymax=10,
axis lines=center,
axis equal,
width=\linewidth,
domain=-15:15,
samples=2
]
\addplot[color=blue] {x + 1};
\addplot[color=red] {4};
\addplot[color=green] {-1/2*x - 2};
\node (P1) at (axis cs:-2,-1) [dot={below:$P_1$}] {};
\node (P2) at (axis cs:3,4) [dot={above:$P_2$}] {};
\node (P3) at (axis cs:-12,4) [dot={above:$P_3$}] {};
\fill [red,opacity=0.1] (P1.center) -- (P2.center) -- (P3.center) -- cycle;
\end{axis}
\end{tikzpicture}
\end{document}