# How to convert to standalone document a matrix table

I would like to generate a .pdf standalone figure of the following tikzpicture. I have tried the common examples of standalone tikzpictures but it does not work.

\documentclass{article}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{filecontents}
\usepackage[table]{xcolor}
\usepackage{pgfplotstable}
\usetikzlibrary{calc}
% \pgfplotsset{compat=1.16}

% next line is to put the framebox
% \usepackage[margin=1in,showframe]{geometry}

\begin{filecontents}{matrix.cvs}
0 1 1 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 1 1 0 1 1 1 1 0 0 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 1 1
0 0 1 1 0 1 0 0 0 1 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0
0 1 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 1 0 1 1 0 1 1 0
0 0 1 0 0 0 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 0 0 0 1 1 0
1 0 1 1 0 0 1 1 0 1 0 1 0 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0
0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 0 0 0 0 1 0 0 0 0 1 0 1 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
1 0 1 0 0 0 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 0 1 1 0 1 0 0 1 1 1 0 0 1 1 1
\end{filecontents}

\makeatletter
\tikzset{
zero color/.initial=white,
zero color/.get=\zerocol,
zero color/.store in=\zerocol,
one color/.initial=red,
one color/.get=\onecol,
one color/.store in=\onecol,
cell wd/.initial=1ex,
cell wd/.get=\cellwd,
cell wd/.store in=\cellwd,
cell ht/.initial=1ex,
cell ht/.get=\cellht,
cell ht/.store in=\cellht,
xlabels/.store in=\myxlabels,
ylabels/.store in=\myylabels,
}
\newcommand{\drawgrid}[2][]{
\medskip
\begin{tikzpicture}[#1]
\pgfplotstableforeachcolumn#2\as\col{
\pgfplotstableforeachcolumnelement{\col}\of#2\as\colcnt{%
\ifnum\colcnt=0
\fill[\zerocol]($(0,-\pgfplotstablerow*\cellht) + (\col*\cellwd,0)$) rectangle+(\cellwd,\cellht);
\fi
\ifnum\colcnt=1
\fill[\onecol]($(0,-\pgfplotstablerow*\cellht) + (\col*\cellwd,0)$) rectangle+(\cellwd,\cellht);
\fi
}
}
\pgfplotstablegetrowsof{#2}
\pgfmathtruncatemacro{\numrows}{\pgfplotsretval}
\pgfplotstablegetcolsof{#2}
\pgfmathtruncatemacro{\numcols}{\pgfplotsretval}
\draw[white] (0,\cellht) grid[xstep=\cellwd,ystep=\cellht]
(\cellwd*\numcols,\cellht-\cellht*\numrows); %
\foreach \Z [count=\Y] in \myylabels
{\node[anchor=west,font=\sffamily,scale=0.7] at
(\cellwd*\numcols,1.5*\cellht-\cellht*\Y) {\Z};}
\foreach \Z [count=\X,evaluate=\Z as \CC using {int(\Z*100)}] in \myxlabels
{\fill[black!\CC]
(-\cellwd+\X*\cellwd,0.5*\cellht-\cellht*\numrows)
rectangle ++ (\cellwd,-\cellht);
\node[anchor=west,rotate=-90,font=\sffamily,scale=0.7] at
(-0.5*\cellwd+\X*\cellwd,-0.5*\cellht-\cellht*\numrows) {\Z};
}

% next line is to put the framebox
%\draw[red] (current bounding box.south west) rectangle (current bounding box.north east);
\end{tikzpicture}
\medskip
}
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}

% next line is to read the data

\begin{figure}[!t]
\centering
\drawgrid[zero color=orange,
one color=violet,
cell ht=0.75em,
cell wd=0.75em,
% next line is to rotate the plot
% auto,rotate=90,transform shape,
xlabels={0.2833,0.0336,0.7766,0.0468,0.0228,0.0143,0.6877,0.0700,0.1287,0.6659,0.7123,0.0143,0.0143,0.6325,0.8049,0.7282,0.1624,0.6346,0.0564,0.0176,0.0143,0.0271,0.6463,0.7268,0.4798,0.1637,0.0297,0.3054,0.5039,0.0246,0.7140,0.3091,0.4256,0.3418,0.6493,0.0508,0.0143,0.2927,0.0291,0.6622,0.0143,0.0177,0.1610,0.1287,0.7471,0.0563,0.0143,0.3275,0.6773,0.5992},
ylabels={0.0293,0.0211,0.0165,0.0163,0.0134,0.0382,0.0150,0.8501}]{\matrixfile}
\caption{caption}
\label{fig:label}
\end{figure}

\end{document}


which produce this:

I think it is because of the definition uses drawgrid command and I do not know how to adapt it to a standalone picture.

All you need to change is to delete several lines that are meaningless in standalone-class. Delete the figure environment, the \caption- and \label-part. Also, the \centering is not necessary.