如何在 tikz 中绘制热图

如何在 tikz 中绘制热图

我正在尝试在 tikz 中绘制热图,但无法找出错误。我已从中实现了以下代码:https://tikz.net/heatmap/

\documentclass[tikz]{standalone}

\begin{document}
\begin{tikzpicture}[scale=0.6]
  \foreach \y [count=\n] in {
      {1e0, 1e0, 1e0, 0.9e0 , 0.9e0, 0.9e0},
      {4e-2, 0.95e-2, 1e-2, 0.6e-2,4e-3, 2e-3},
      {2e-2, 0.7e-2,0.8e-2,1e-3,2e-3,1e-4},
      {1e-2,0.75e-2,0.8e-2,0.3e-3,0.5e-3,1e-4},
      {0.4e-2, 0.8e-2,0.3e-2,0.3e-4,1e-3,0.2e-3},
    } {
      % column labels
      \ifnum\n<6
        \node[minimum size=6mm] at (\n, 0) {\n};
      \fi
      % heatmap tiles
      \foreach \x [count=\m] in \y {
        \node[fill=yellow!\x!purple, minimum size=6mm, text=white] at (\m,-\n) {\x};
      }
    }

  % row labels
  \foreach \a [count=\i] in {a,b,c,d,e} {
    \node[minimum size=6mm] at (0,-\i) {\a};
  }
\end{tikzpicture}
\end{document}

答案1

颜色混合语法采用从 0 到 100 的数字。以下是对您想要的内容的猜测。

\documentclass[tikz, border=1cm]{standalone}
\begin{document}
\begin{tikzpicture}
\foreach \y [count=\n] in {
{1e0, 1e0, 1e0, 0.9e0, 0.9e0, 0.9e0},
{4e-2, 0.95e-2, 1e-2, 0.6e-2, 4e-3, 2e-3},
{2e-2, 0.7e-2, 0.8e-2, 1e-3, 2e-3, 1e-4},
{1e-2, 0.75e-2, 0.8e-2, 0.3e-3, 0.5e-3, 1e-4},
{0.4e-2, 0.8e-2, 0.3e-2 ,0.3e-4, 1e-3, 0.2e-3},
} {
\node at (\n, 0) {\n};
\foreach \x [evaluate=\x as \shade using -10*ln(\x), count=\m] in \y {
\node[
fill=yellow!\shade!purple,
minimum size=10.1mm,
text=white, font=\tiny] at (\m,-\n) {\x};
}}
\foreach \a [count=\i] in {a,b,c,d,e} {
\node at (0,-\i) {\a};
}
\end{tikzpicture}
\end{document}

具有不同颜色的方块和数字的网格

相关内容