我有一张两条线的图。在 y 轴下方,以 y 轴为中心,我想将“在 $e=f=1$ 情况下的线图”放在一个框中。“在 $e=f=1$ 情况下的线图”位于“在 $e=f=1$ 情况下的线图”上方。以下是代码。
\documentclass[10pt]{amsart}
\usepackage{tikz}
\usetikzlibrary{calc,angles,positioning,intersections,quotes,decorations.markings}
\usepackage{mathtools,array}
\usepackage{tkz-euclide}
\usetkzobj{all}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}
\begin{document}
\noindent \hspace*{\fill}
\begin{tikzpicture}
\begin{axis}[width=5in,axis equal image,
axis lines=middle,
xmin=-8,xmax=8,samples=201,
xlabel=$x$,ylabel=$y$,
ymin=-5,ymax=6,
restrict y to domain=-5:6,
enlargelimits={abs=0.5cm},
axis line style={latex-latex},
ticklabel style={font=\tiny,fill=white},
xtick={\empty},ytick={\empty},
extra x ticks={2},
extra x tick labels={$2$},
extra y ticks={-1},
extra y tick labels={$-1$},
xlabel style={at={(ticklabel* cs:1)},anchor=north west},
ylabel style={at={(ticklabel* cs:1)},anchor=south west}
]
\addplot[latex-latex,samples=201,domain=-8:8,blue] {-0.6 * x + 0.2} node[anchor=south west, pos=0.75,font=\footnotesize]{$3x + 5y = 1$};
\addplot[latex-latex,samples=201,domain=-8:8,purple] {(-2/3) * x + 1/3} node[anchor=south west, pos=0.1,font=\footnotesize]{$2x + 3y = 1$};
\draw [fill] (2,-1) circle [radius=1.5pt] node[anchor=north east,font=\tiny]{$(2, \, -1)$};
\end{axis}
\end{tikzpicture}
\hspace*{\fill}
\end{document}
答案1
不确定我是否正确理解了您的问题,但您可以使用命令提供额外的文本框。您可以放置参考内部坐标系\node
的节点,可以通过图形左下角等于 的位置访问该节点。pgfplots
(axis description cs:x-coordinate,y-coordinate)
(0,0)
将 添加到图表后,node
由于轴被剪裁,文本框会在下部被截断。您可以通过将选项传递clip=false
给axis
-environment 来避免这种情况。此外,我删除了\hspace*{\fill}
文档开头和结尾的 。
这是我得到的:
\documentclass[10pt]{amsart}
\usepackage{tikz}
\usetikzlibrary{calc,angles,positioning,intersections,quotes,decorations.markings}
\usepackage{mathtools,array}
\usepackage{tkz-euclide}
\usetkzobj{all}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}
\begin{document}
\begin{tikzpicture}
\begin{axis}[width=5in,axis equal image,
axis lines=middle,
xmin=-8,xmax=8,samples=201,
xlabel=$x$,ylabel=$y$,
ymin=-5,ymax=6,
restrict y to domain=-5:6,
enlargelimits={abs=0.5cm},
axis line style={latex-latex},
ticklabel style={font=\tiny,fill=white},
xtick={\empty},ytick={\empty},
extra x ticks={2},
extra x tick labels={$2$},
extra y ticks={-1},
extra y tick labels={$-1$},
xlabel style={at={(ticklabel* cs:1)},anchor=north west},
ylabel style={at={(ticklabel* cs:1)},anchor=south west},
clip=false %prevent axis to clip "picture area" (otherwise text box will be cut off)
]
\addplot[latex-latex,samples=201,domain=-8:8,blue] {-0.6 * x + 0.2} node[anchor=south west, pos=0.75,font=\footnotesize]{$3x + 5y = 1$};
\addplot[latex-latex,samples=201,domain=-8:8,purple] {(-2/3) * x + 1/3} node[anchor=south west, pos=0.1,font=\footnotesize]{$2x + 3y = 1$};
\draw [fill] (2,-1) circle [radius=1.5pt] node[anchor=north east,font=\tiny]{$(2, \, -1)$};
% add a node to provide a text box, use draw option to get a border line and align option to make \\ useable
\node[draw, align=center] at (axis description cs:0.5,-0.1) {Graph of lines \\ in the case $e=f=1$};
\end{axis}
\end{tikzpicture}
\end{document}
-- 根据评论进行编辑:
由于draw
传递给命令的选项,边界框被绘制。您可以通过传递给aswell 来\node
将字体更改为 footnotesize ,这将导致font={\footnotesize}
\node
\node[draw, align=center, font={\footnotesize}] at (axis description cs:0.5,-0.1) {Graph of lines \\ in the case $e=f=1$};
该clip
选项会影响图表“容器”的边框。由于默认设置,太靠近边框的节点将被切断clip=true
,因此通常无需指定。但是,clip=false
会扩展“容器”,因此靠近边框的节点不会被切断。图表的图例也不会被切断。在这种情况下,“容器”的边框会自动扩展。包含所需文本的节点更可能是附加注释或评论,而不是图例或标题。
要将框添加到包含坐标的节点,(2, -1)
您只需将其传递draw
给节点的选项。因此,此行将是:
\draw [fill] (2,-1) circle [radius=1.5pt] node[draw, anchor=north east,font=\tiny]{$(2, \, -1)$};
总而言之,编辑给定的两行后,输出如下所示: