tikz pgf - 为矩阵的特定单元格添加背景颜色

tikz pgf - 为矩阵的特定单元格添加背景颜色

你好,我对如何向矩阵的特定单元格添加背景感兴趣。

我已经了解一些如何构建矩阵,我给出的代码如下所示:

\usepackage{tikz}
\usetikzlibrary{arrows, fit, matrix, positioning, shapes}

\begin{tikzpicture}[>=latex]
    \node (B) {$B^\prime=$};
    \matrix (M) [matrix of math nodes,left delimiter={[}, right delimiter={]},
    matrix anchor=west, right=0.5em of B, 
    column 1/.style={anchor=base east},
    column 2/.style={anchor=base east},
    column 3/.style={anchor=base east}]
    {
      a & b & c\\
      b & d & e\\
      c & e & a+b+1\\
    };
    \node  [fit=(M-1-1) (M-1-3), draw, rectangle, blue]{};    
    \node  [fit=(M-2-2) (M-2-3), draw, rectangle, blue]{};
    \node  [fit=(M-3-3) (M-3-3), draw, rectangle, blue]{};
\end{tikzpicture}

如您所见,我正在创建一个右对齐矩阵,因为单元格 (3,3) 处的元素非常长。为了指出我的矩阵是二次矩阵,我考虑突出显示行元素 1-1 到 1-3、2-2 到 2-3 和元素 3-3。

我想给它们添加背景颜色,比如说某种蓝色。我无法在不覆盖下方矩阵元素的情况下填充矩形。

如有任何提示或解决方案我将不胜感激:)

答案1

我终于找到了我想要的答案。

\usepackage{tikz}
\usetikzlibrary{arrows, fit, matrix, positioning, shapes, backgrounds,
}

\begin{tikzpicture}[>=latex]
    \node (B) {$B^\prime=$};
    \matrix (M) [matrix of math nodes,left delimiter={[}, right delimiter={]},
    matrix anchor=west, right=0.5em of B, 
    column 1/.style={anchor=base east},
    column 2/.style={anchor=base east},
    column 3/.style={anchor=base east}]
    {
      a & b & c\\
      b & d & e\\
      c & e & a+b+1\\
    };
    \scoped[on background layer]
    {
    \node[fill=pink!50, fit=(M-1-1)(M-1-3) ]   {};
    \node[fill=pink!50, fit=(M-2-2)(M-2-3) ]   {};
    \node[fill=pink!50, fit=(M-3-3)(M-3-3) ]   {};
    }
\end{tikzpicture}

虽然不是特别完美,但我会接受。谢谢你的建议。

在此处输入图片描述

相关内容