1

In this example from the solution of *How to add a number at the right of a matrix plot and an additional colored 1 line array below or above *:

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

\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};
    }
\end{tikzpicture}
\medskip
}
\makeatother

\begin{document}
% read the file
\pgfplotstableread{matrix.cvs}{\matrixfile}


\begin{figure}[!t]
    \centering
        \drawgrid[zero color=orange, 
          one color=violet,
          cell ht=0.75em,
          cell wd=0.75em,
          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}

The compiled pdf files result in a different orientation of the page. Using LaTeX to compile the result is rotated 90 and, if compiled with pdfLaTeX the result is the expected.

It is possible that this is happening because of something related to postscript generation which is not present with pdfLaTeX.

Does somebody know how can I compile the TeX example with LaTeX and get the same page orientation of the pdfLaTeX?.

Regards

3

By default Ghostscript (ps2pdf) automatically rotates the image based on aspect ratio. To prevent that use ps2pdf -dAutoRotatePages=/None.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.