Me gustaría dibujar una cuadrícula de pgfplots en una imagen de 480x800. Con el siguiente código, puedo ver que se ha trazado la cuadrícula pero la imagen no se muestra.
\documentclass{standalone}
\usepackage{tikz}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\def\fname{/media/sf_work/demo.png}
\begin{tikzpicture}
\begin{axis}[
grid = both,scale=.5,
width=480,
height=800,
, minor tick num=3
, grid style={draw=gray!10,line width=.1pt}
, major grid style={line width=0.5pt,draw=gray!50}
, axis line style={latex-latex}
, xticklabels = \empty
, yticklabels = \empty
, draw=blue!20
]
\node[] (image) at (axis cs:240,400) {\includegraphics[]{\fname}};
\end{axis}
\end{tikzpicture}
\end{document}
Respuesta1
Está mezclando width
y length
(tamaño físico de la imagen producida) con los rangos de valores xey. Observa que la figura será vectorial, por lo que aquí no puedes jugar con píxeles, al menos no tan fácilmente.
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\def\fname{/media/sf_work/demo.png}
\begin{tikzpicture}
\begin{axis}[
grid = both, %scale removed, here it messes things up
width=4.8cm,
height=8cm,
xmin=0, xmax=480, ymin=0, ymax=800,
, minor tick num=3
, grid style={draw=gray!10,line width=.1pt}
, major grid style={line width=0.5pt,draw=gray!50}
, axis line style={latex-latex}
, xticklabels = \empty
, yticklabels = \empty
, draw=blue!20
]
% axis cs is not needed
\node[] (image) at (axis cs:240,400) {\includegraphics[width=2cm]{example-image-duck}};
\end{axis}
\end{tikzpicture}
\end{document}
Observe que pgfplots agrega espacio para las etiquetas x e y, incluso si no están allí, y que normalmente la cuadrícula esbajola imagen.