¿Cómo mostrar encabezados en un grid hecho con TikZ?

¿Cómo mostrar encabezados en un grid hecho con TikZ?

Estoy intentando crear un mapa de Markov, como lo describen Dias & Vermunt 2007 en la Fig. 2.http://members.home.nl/jeroenvermunt/dias2006c.pdf

Aquí está la figura:

ingrese la descripción de la imagen aquí

Hasta ahora he intentado usar grillas para Ti.kZ, que funciona para el coloreado degradado, pero parece que no puedo agregar los nombres de los estados. También lo intenté con tablas, pero este resultado no se ve bien (muy desordenado, diferentes tamaños de celdas).

(¡Espero que esto se haga correctamente, ya que es mi primera vez aquí!)

¿Hay alguien que sepa cómo agregar nombres de encabezado y crear un mapa bonito?

¡Muchas gracias!


No puedo responder a un comentario. Así que lo haré de esta manera. La biblioteca de matrices de Tikz funciona muy bien (puedo ver los resultados publicados en el comentario), sin embargo, cuando lo extiendo a una matriz de 22*22, aparece un error:

\hbox demasiado lleno: en casi todos los párrafos...

Intenté cambiar el tamaño, el ancho mínimo y el ancho del texto, pero esto no ayudó. ¿Podría explicarme qué significan estas medidas y cómo solucionarlo? ¡Gracias de nuevo!


Necesito varios mapas de Markov uno al lado del otro, pero la alineación no funciona porque los 2 mapas inferiores están en ubicaciones diferentes. ¿Alguien sabe cómo solucionar esto? ingrese la descripción de la imagen aquí

\begin{figure}[tb]
\subcaptionbox{Cluster 1, $\pi_1 = 0.18$}{
\begin{tikzpicture}[font=\ttfamily, ampersand replacement=\&]
\matrix (A) [nodes in empty cells,
matrix of nodes,
nodes={draw, minimum size=3mm, inner sep=0pt, outer sep=0pt, anchor=center},
row 1/.style={nodes={draw=none, rotate=90, anchor=west, inner xsep=1mm}},
column 1/.style={nodes={draw=none, minimum width=30mm, text width=28mm, align=right}},
column sep=-\pgflinewidth,
row sep=-\pgflinewidth
]
{   \&  AC  \&  CH  \&  DP  \&  HP  \&  IA  \&  LB  \&  LP  \&  NL  \&  SC  \&  show\_discount\_reminder    \&  show\_funnel\_campaign  \&  show\_recc  \&  show\_recp  \&  show\_upsell    \&  show\_wijnatlas     \&  WV  \&  XT  \\                                      
AC  \& |[fill=black!    2   ]|\& |[fill=black!  0   ]|\& |[fill=black!  45  ]|\& |[fill=black!  6   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  37  ]|\& |[fill=black!  0   ]|\& |[fill=black!  3   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  5   ]|\& |[fill=black!  0   ]|\& |[fill=black!  1   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\\                                        

XT  \& |[fill=black!    8   ]|\& |[fill=black!  0   ]|\& |[fill=black!  17  ]|\& |[fill=black!  17  ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  25  ]|\& |[fill=black!  0   ]|\& |[fill=black!  13  ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  17  ]|\& |[fill=black!  0   ]|\& |[fill=black!  2   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\\                                        
};
\end{tikzpicture}
}
\subcaptionbox{Cluster 2, $\pi_2 = 0.16$}{
\begin{tikzpicture}[font=\ttfamily, ampersand replacement=\&]
\matrix (A) [nodes in empty cells,
matrix of nodes,
nodes={draw, minimum size=3mm, inner sep=0pt, outer sep=0pt, anchor=center},
row 1/.style={nodes={draw=none, rotate=90, anchor=west, inner xsep=1mm}},
%column 1/.style={nodes={draw=none, minimum width=43mm, text width=40mm, align=right}},
column sep=-\pgflinewidth,
row sep=-\pgflinewidth
]
{       AC  \&  CH  \&  DP  \&  HP  \&  IA  \&  LB  \&  LP  \&  NL  \&  SC  \&  show\_discount\_reminder    \&  show\_funnel\_campaign  \&  show\_recc  \&  show\_recp  \&  show\_upsell    \&  show\_wijnatlas     \&  WV  \&  XT  \\                                      
     |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  17  ]|\& |[fill=black!  2   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  79  ]|\& |[fill=black!  0   ]|\& |[fill=black!  1   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  1   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\\                                        
     |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  1   ]|\& |[fill=black!  14  ]|\& |[fill=black!  3   ]|\& |[fill=black!  0   ]|\& |[fill=black!  49  ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  33  ]|\\                                                                    
};
\end{tikzpicture}
}
\subcaptionbox{Cluster 3, $\pi_3 = 0.23$}{
\begin{tikzpicture}[font=\ttfamily, ampersand replacement=\&]
\matrix (A) [nodes in empty cells,
matrix of nodes,
nodes={draw, minimum size=3mm, inner sep=0pt, outer sep=0pt, anchor=center},
%row 1/.style={nodes={draw=none, rotate=90, anchor=west, inner xsep=1mm}},
column 1/.style={nodes={draw=none, minimum width=30mm, text width=28mm, align=right}},
column sep=-\pgflinewidth,
row sep=-\pgflinewidth
]
{AC \& |[fill=black!    2   ]|\& |[fill=black!  0   ]|\& |[fill=black!  40  ]|\& |[fill=black!  10  ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  40  ]|\& |[fill=black!  0   ]|\& |[fill=black!  7   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\\                                        

XT  \& |[fill=black!    4   ]|\& |[fill=black!  0   ]|\& |[fill=black!  18  ]|\& |[fill=black!  19  ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  25  ]|\& |[fill=black!  1   ]|\& |[fill=black!  20  ]|\& |[fill=black!  0   ]|\& |[fill=black!  1   ]|\& |[fill=black!  9   ]|\& |[fill=black!  0   ]|\& |[fill=black!  2   ]|\& |[fill=black!  1   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\\                                        
};
\end{tikzpicture}
}
\subcaptionbox{Cluster 4, $\pi_4 = 0.13$}{
\begin{tikzpicture}[font=\ttfamily, ampersand replacement=\&]
\matrix (A) [nodes in empty cells,
matrix of nodes,
nodes={draw, minimum size=3mm, inner sep=0pt, outer sep=0pt, anchor=center},
%row 1/.style={nodes={draw=none, rotate=90, anchor=west, inner xsep=1mm}},
%column 1/.style={nodes={draw=none, minimum width=43mm, text width=40mm, align=right}},
column sep=-\pgflinewidth,
row sep=-\pgflinewidth
]
{    |[fill=black!  1   ]|\& |[fill=black!  0   ]|\& |[fill=black!  71  ]|\& |[fill=black!  1   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  6   ]|\& |[fill=black!  0   ]|\& |[fill=black!  1   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  21  ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\\                                        

     |[fill=black!  3   ]|\& |[fill=black!  0   ]|\& |[fill=black!  16  ]|\& |[fill=black!  11  ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  19  ]|\& |[fill=black!  0   ]|\& |[fill=black!  6   ]|\& |[fill=black!  0   ]|\& |[fill=black!  1   ]|\& |[fill=black!  40  ]|\& |[fill=black!  0   ]|\& |[fill=black!  2   ]|\& |[fill=black!  1   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\\                                        
};
\end{tikzpicture}
}
\subcaptionbox{Cluster 5, $\pi_5 = 0.17$}{
\begin{tikzpicture}[font=\ttfamily, ampersand replacement=\&]
\matrix (A) [nodes in empty cells,
matrix of nodes,
nodes={draw, minimum size=3mm, inner sep=0pt, outer sep=0pt, anchor=center},
%row 1/.style={nodes={draw=none, rotate=90, anchor=west, inner xsep=1mm}},
column 1/.style={nodes={draw=none, minimum width=43mm, text width=40mm, align=right}},
column sep=-\pgflinewidth,
row sep=-\pgflinewidth
]
{AC \& |[fill=black!    1   ]|\& |[fill=black!  0   ]|\& |[fill=black!  17  ]|\& |[fill=black!  4   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  76  ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  1   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\\                                        

XT  \& |[fill=black!    4   ]|\& |[fill=black!  0   ]|\& |[fill=black!  9   ]|\& |[fill=black!  28  ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  29  ]|\& |[fill=black!  0   ]|\& |[fill=black!  13  ]|\& |[fill=black!  0   ]|\& |[fill=black!  3   ]|\& |[fill=black!  2   ]|\& |[fill=black!  0   ]|\& |[fill=black!  5   ]|\& |[fill=black!  8   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\\                                        
};
\end{tikzpicture}
}
\subcaptionbox{Cluster 6, $\pi_6 = 0.12$}{
\begin{tikzpicture}[font=\ttfamily, ampersand replacement=\&]
\matrix (A) [nodes in empty cells,
matrix of nodes,
nodes={draw, minimum size=3mm, inner sep=0pt, outer sep=0pt, anchor=center},
%row 1/.style={nodes={draw=none, rotate=90, anchor=west, inner xsep=1mm}},
%column 1/.style={nodes={draw=none, minimum width=43mm, text width=40mm, align=right}},
column sep=-\pgflinewidth,
row sep=-\pgflinewidth
]
{    |[fill=black!  1   ]|\& |[fill=black!  0   ]|\& |[fill=black!  40  ]|\& |[fill=black!  6   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  18  ]|\& |[fill=black!  0   ]|\& |[fill=black!  1   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  33  ]|\& |[fill=black!  0   ]|\& |[fill=black!  1   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\\                                        

     |[fill=black!  7   ]|\& |[fill=black!  1   ]|\& |[fill=black!  8   ]|\& |[fill=black!  29  ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\& |[fill=black!  19  ]|\& |[fill=black!  0   ]|\& |[fill=black!  10  ]|\& |[fill=black!  0   ]|\& |[fill=black!  2   ]|\& |[fill=black!  15  ]|\& |[fill=black!  0   ]|\& |[fill=black!  2   ]|\& |[fill=black!  7   ]|\& |[fill=black!  0   ]|\& |[fill=black!  0   ]|\\                                    
};
\end{tikzpicture}
}
\label{TP_userS6}
\caption{Transition probabilities of user data (ADJ) using MMM}
\end{figure}

Respuesta1

Puedes usar un matrix:

\documentclass[tikz,border=2mm]{standalone}
\usetikzlibrary{matrix}

\begin{document}
\begin{tikzpicture}[font=\sffamily\tiny]
\matrix (A) [nodes in empty cells,
        matrix of nodes,
        nodes={draw, minimum size=3mm, inner sep=0pt, outer sep=0pt, anchor=center},
        row 1/.style={nodes={draw=none, rotate=90, anchor=west, inner xsep=1mm}},
        column 1/.style={nodes={draw=none, minimum width=12mm, text width=10mm, align=left}},
        column sep=-\pgflinewidth,
        row sep=-\pgflinewidth
        ]
{
& frontpage & news & tech \\
frontpage & |[fill=red]| & |[fill=orange]| & \\
news & & |[fill=red!70!black]| & \\
tech & & |[fill=yellow]| & |[fill=red!70!black]| \\
};
\end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

Actualizar:

El problema con la matriz de 22x22 no se debe a su tamaño, sino al tamaño de los nodos en la primera columna. En mi ejemplo anterior fueron definidos con

    column 1/.style={nodes={draw=none, minimum width=12mm, text width=10mm, align=left}},

Con este tamaño pueden caber frontpage, pero no show\_discount\_reminer. Si declara los nodos de la columna 1 lo suficientemente largos como para hacer frente a estas palabras largas, todos los mensajes overfull horizontal boxdesaparecerán.

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{tikz}
\usetikzlibrary{matrix}

\usepackage{lipsum}

\begin{document}
\lipsum[1]

\begin{figure}[tb]
\begin{tikzpicture}[font=\itshape]
\matrix (A) [nodes in empty cells,
matrix of nodes,
nodes={draw, minimum size=3mm, inner sep=0pt, outer sep=0pt, anchor=center},
row 1/.style={nodes={draw=none, rotate=90, anchor=west, inner xsep=1mm}},
column 1/.style={nodes={draw=none, minimum width=43mm, text width=40mm, align=left}},
column sep=-\pgflinewidth,
row sep=-\pgflinewidth
]
{
&   AC &  ACRC  &   CH  &   DP    &   HP    &   IA    &   infl\_discount\_reminder &   infl\_funnel\_campaign    &   infl\_upsell  &   infl\_wijnatlas   &   LB    &   LP    &   NL    &   SC    &   show\_discount\_reminder  &   show\_funnel\_campaign    &   show\_recc    &   show\_recp &  show\_upsell  &   show\_wijnatlas   &   WV &  XT \\
AC & |[fill=black!    1   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   39  ]|& |[fill=black!   6   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   43  ]|& |[fill=black!   0   ]|& |[fill=black!   3   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   8   ]|& |[fill=black!   0   ]|& |[fill=black!   1   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|\\
ACRC  & |[fill=black! 40  ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   20  ]|& |[fill=black!   20  ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   20  ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|\\
CH    & |[fill=black! 0   ]|& |[fill=black!   0   ]|& |[fill=black!   4   ]|& |[fill=black!   1   ]|& |[fill=black!   1   ]|& |[fill=black!   1   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   18  ]|& |[fill=black!   2   ]|& |[fill=black!   0   ]|& |[fill=black!   30  ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   22  ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   22  ]|\\
DP    & |[fill=black! 6   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   17  ]|& |[fill=black!   2   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   2   ]|& |[fill=black!   8   ]|& |[fill=black!   0   ]|& |[fill=black!   9   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   52  ]|& |[fill=black!   0   ]|& |[fill=black!   2   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   2   ]|\\
HP    & |[fill=black! 2   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   7   ]|& |[fill=black!   49  ]|& |[fill=black!   1   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   1   ]|& |[fill=black!   18  ]|& |[fill=black!   0   ]|& |[fill=black!   5   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   13  ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   1   ]|& |[fill=black!   3   ]|\\
IA    & |[fill=black! 3   ]|& |[fill=black!   0   ]|& |[fill=black!   1   ]|& |[fill=black!   14  ]|& |[fill=black!   14  ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   18  ]|& |[fill=black!   1   ]|& |[fill=black!   25  ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   19  ]|& |[fill=black!   0   ]|& |[fill=black!   1   ]|& |[fill=black!   1   ]|& |[fill=black!   1   ]|& |[fill=black!   0   ]|\\
infl\_discount\_reminder  & |[fill=black! 2   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   6   ]|& |[fill=black!   2   ]|& |[fill=black!   2   ]|& |[fill=black!   30  ]|& |[fill=black!   0   ]|& |[fill=black!   1   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   1   ]|& |[fill=black!   0   ]|& |[fill=black!   33  ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   19  ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   3   ]|\\
infl\_funnel\_campaign    & |[fill=black! 0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   27  ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   48  ]|& |[fill=black!   0   ]|& |[fill=black!   1   ]|& |[fill=black!   22  ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   1   ]|\\
infl\_upsell  & |[fill=black! 0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   64  ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   36  ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|\\
infl\_wijnatlas   & |[fill=black! 0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   64  ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   27  ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   9   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|\\
LB    & |[fill=black! 5   ]|& |[fill=black!   0   ]|& |[fill=black!   1   ]|& |[fill=black!   13  ]|& |[fill=black!   22  ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   32  ]|& |[fill=black!   0   ]|& |[fill=black!   8   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   14  ]|& |[fill=black!   0   ]|& |[fill=black!   2   ]|& |[fill=black!   2   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|\\
LP    & |[fill=black! 6   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   8   ]|& |[fill=black!   4   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   2   ]|& |[fill=black!   36  ]|& |[fill=black!   0   ]|& |[fill=black!   8   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   18  ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   15  ]|& |[fill=black!   0   ]|& |[fill=black!   2   ]|\\
NL    & |[fill=black! 0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   1   ]|& |[fill=black!   2   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   2   ]|& |[fill=black!   5   ]|& |[fill=black!   81  ]|& |[fill=black!   1   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   3   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   3   ]|\\
SC    & |[fill=black! 0   ]|& |[fill=black!   0   ]|& |[fill=black!   9   ]|& |[fill=black!   2   ]|& |[fill=black!   1   ]|& |[fill=black!   1   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   3   ]|& |[fill=black!   4   ]|& |[fill=black!   0   ]|& |[fill=black!   47  ]|& |[fill=black!   0   ]|& |[fill=black!   1   ]|& |[fill=black!   23  ]|& |[fill=black!   0   ]|& |[fill=black!   6   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   3   ]|\\
show\_discount\_reminder  & |[fill=black! 0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   1   ]|& |[fill=black!   0   ]|& |[fill=black!   1   ]|& |[fill=black!   82  ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   1   ]|& |[fill=black!   0   ]|& |[fill=black!   7   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   5   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   1   ]|\\
show\_funnel\_campaign    & |[fill=black! 0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   3   ]|& |[fill=black!   0   ]|& |[fill=black!   1   ]|& |[fill=black!   0   ]|& |[fill=black!   81  ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   1   ]|& |[fill=black!   2   ]|& |[fill=black!   0   ]|& |[fill=black!   5   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   5   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   2   ]|\\
show\_recc    & |[fill=black! 3   ]|& |[fill=black!   0   ]|& |[fill=black!   1   ]|& |[fill=black!   11  ]|& |[fill=black!   4   ]|& |[fill=black!   1   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   1   ]|& |[fill=black!   13  ]|& |[fill=black!   0   ]|& |[fill=black!   19  ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   34  ]|& |[fill=black!   0   ]|& |[fill=black!   4   ]|& |[fill=black!   6   ]|& |[fill=black!   0   ]|& |[fill=black!   4   ]|\\
show\_recp & |[fill=black!    0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   50  ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   50  ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|\\
show\_upsell  & |[fill=black! 1   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   4   ]|& |[fill=black!   1   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   6   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   4   ]|& |[fill=black!   0   ]|& |[fill=black!   45  ]|& |[fill=black!   1   ]|& |[fill=black!   3   ]|& |[fill=black!   32  ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   2   ]|\\
show\_wijnatlas   & |[fill=black! 10  ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   12  ]|& |[fill=black!   3   ]|& |[fill=black!   1   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   1   ]|& |[fill=black!   43  ]|& |[fill=black!   0   ]|& |[fill=black!   7   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   21  ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   3   ]|\\
WV & |[fill=black!    0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   9   ]|& |[fill=black!   33  ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   1   ]|& |[fill=black!   19  ]|& |[fill=black!   0   ]|& |[fill=black!   3   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   24  ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   10  ]|& |[fill=black!   3   ]|\\
XT & |[fill=black!    5   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   15  ]|& |[fill=black!   19  ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|& |[fill=black!   25  ]|& |[fill=black!   0   ]|& |[fill=black!   15  ]|& |[fill=black!   0   ]|& |[fill=black!   1   ]|& |[fill=black!   14  ]|& |[fill=black!   0   ]|& |[fill=black!   3   ]|& |[fill=black!   2   ]|& |[fill=black!   0   ]|& |[fill=black!   0   ]|\\
};
\end{tikzpicture}
\caption{Markov map aggregated data (S=1).}
\end{figure}  
\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

Un enfoque similar al que propuso en su pregunta es el siguiente. Utilizo dos bucles para etiquetar las columnas y filas, luego algunos \fillpara las celdas seleccionadas y finalmente la cuadrícula. La cuadrícula se dibuja como último paso, de modo que las líneas de la cuadrícula cubran los bordes de las celdas llenas.

\documentclass [border=2mm]{standalone}
\usepackage{graphicx}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}[scale=0.4]
    % Put column headers
    \foreach \header [count=\c] in {Lorem, ipsum, dolor, sit, amet, consectetur, adipiscing, elit, Proin, vulputate, dignissim, odio, eu, euismod, sapien, sodales, eu, Curabitur, ipsum, nibh, dictum, eu} {
      \node[above] at (\c-0.5,22) {\rotatebox{90}{\small\sffamily\header}};
      }

    % Put row headers
    \foreach \header [count=\c] in {Lorem, ipsum, dolor, sit, amet, consectetur, adipiscing, elit, Proin, vulputate, dignissim, odio, eu, euismod, sapien, sodales, eu, Curabitur, ipsum, nibh, dictum, eu} {
      \node[left] at (0,22-\c+0.5) {\small\sffamily\header};
      }

    % Fill some squares
    \fill[black!10] (0,21) rectangle +(1,1); % Use relative coordinates for the rectangle size
    \fill[black!30] (1,20) rectangle +(1,1); % Use relative coordinates for the rectangle size

    % Finally, the grid
    \draw[black, very thin] (0,0) grid (22,22);
\end{tikzpicture}
\end{document}

Resultado:

Resultado

información relacionada