我使用 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
将设置矩阵中所有节点的颜色,或者您可以为矩阵中的所有节点添加设置matrix
(every 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}