使用 TikZ 绘制带有文字的箭头

使用 TikZ 绘制带有文字的箭头

我使用 TikZ 制作了一些矩阵,但我还想表明第二个矩阵是第一个矩阵的子矩阵的焦点(我在这里用 PS 制作了一个丑陋的示例)并添加一个带有文本的箭头,如下图所示:

在此处输入图片描述

这是我目前的代码。这是我实现的:

在此处输入图片描述

我想知道如何做“焦点”以及如何更改“引导”标签大小。另外,我想知道是否可以这样做并为每个矩阵放置(a)、(b)和(c)标签,以及我是否可以更改特定矩阵的文本颜色。这是我第一次使用 TikZ,所以这可能是一个愚蠢的问题。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix,backgrounds}
\begin{document}
\begin{tikzpicture}
\matrix(A) [matrix of math nodes,%
            left delimiter  = |,%
            right delimiter = |] at (0,0)
{
 a & b & c & d \\
 e & f & g & h \\ 
 i & j & l & m \\ 
 n &     o & p & q \\
};
\begin{scope}[on background layer]
   \fill[blue!30,opacity=.5] (A-1-1.west|-A-1-3.north) rectangle (A-3-3.south east);
\end{scope}

\matrix(B) [matrix of math nodes,%
            left delimiter  = |,%
            right delimiter = |] at (3.1cm,0)
{
 a & b & c \\
 e & f & g \\ 
 i & j & l \\ 
};

\matrix(C) [matrix of math nodes,%
            left delimiter  = |,%
            right delimiter = |] at (6cm,0cm)
{
 l & l & c \\
 f & j & i \\ 
 g & b & e \\ 
};

\matrix(D) [matrix of math nodes,%
            left delimiter  = |,%
            right delimiter = |] at (0cm,-2.5cm)
{
 l & l & c \\
 f & j & i \\ 
 g & b & e \\ 
};

\matrix(K) [matrix of math nodes] at (0cm,-2.5cm)
{
 k_{1} & k_{2} & k_{3} \\
 k_{4} & k_{5} & k_{6} \\ 
 k_{7} & k_{8} & k_{9} \\ 
};

\draw[->,thick] (B) -- (C) node [pos=0.66,above] {bootstrap};
\end{tikzpicture}
\end{document}

答案1

  • 要更改字体大小,bootstrap您可以添加font=\footnotesize到节点选项中。

  • positioning您可以通过加载库并输入以下命令在矩阵上方添加节点:

    \node (a) [above=0.1cm of A] {($a$)};
    

    如果你对 B 和 C 做同样的事情,它们会比 a 标签略低,因为这些矩阵的顶部较低。你可以修改长度,但使用起来更容易

    \node at (a-|B.north) {($b$)};
    

    将该节点放置在与 相同的 x 坐标B.north和 y 坐标处a(如上所述)。

  • decorations.pathreplacing通过添加库并使用,可以创建类似于草图中的支架decoration={brace,amplitude=8},decorate。您可以修改振幅。我还添加了指向下一个矩阵的附加箭头。不过,我不知道您到底想要什么,如果您需要任何更改,请发表评论。

  • 在选项中添加颜色名称matrix将设置矩阵中所有节点的颜色,或者您可以为矩阵中的所有节点添加设置matrixevery node/.append style={blue}再次添加到matrix选项中)。

在此处输入图片描述

\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{matrix,backgrounds,decorations.pathreplacing,positioning}
\begin{document}
\begin{tikzpicture}[decoration={brace,amplitude=10}]
\matrix(A) [matrix of math nodes,%
            left delimiter  = |,%
            right delimiter = |] at (0,0)
{
 a & b & c & d \\
 e & f & g & h \\ 
 i & j & l & m \\ 
 n &     o & p & q \\
};
\begin{scope}[on background layer]
   \fill[blue!30,opacity=.5] (A-1-1.west|-A-1-3.north) rectangle (A-3-3.south east);
\end{scope}

\matrix(B) [matrix of math nodes,%
            left delimiter  = |,%
            right delimiter = |] at (3.1cm,0)
{
 a & b & c \\
 e & f & g \\ 
 i & j & l \\ 
};


\matrix(C) [matrix of math nodes,%
            left delimiter  = |,%
            right delimiter = |,
            every node/.append style={blue} % <-- added
            ] at (6cm,0cm)
{
 l & l & c \\
 f & j & i \\ 
 g & b & e \\ 
};

\draw [decorate,thick, red] (A-1-3.north east) -- (A-3-3.south east);
\draw [thick, red, -latex](A-2-3.east) ++(0.32cm,0) to[out=0,in=180] ([xshift=-.2cm]B.west);
\draw[->,thick] (B) -- (C) node [pos=0.66,above,font=\footnotesize] {bootstrap};

\node (a) [above=2pt of A] {($a$)};
\node at (a-|B.north) {($b$)};
\node at (a-|C.north) {($c$)};
\end{tikzpicture}
\end{document}

相关内容