TikZ llena el borde de ancho cero

TikZ llena el borde de ancho cero

Estoy intentando crear un gráfico de densidad con TikZ usando \fillrectángulos muy apilados. Los bordes delgados no deseados en la imagen, ¿son un artefacto de renderizado o una característica de fill? ¿Se pueden eliminar/suavizar?

\documentclass{standalone}
\usepackage{tikz}
\usepackage{pgf}
\usepackage{gnuplot-lua-tikz}   %for colors
\begin{document}
\pagestyle{empty}
\begin{tikzpicture}[xscale=0.05,yscale=0.3]
\fill[rgb color={0.40,0.50,0.01}, opacity=0.75] (0.000,0.00) -- (2.000,0.00) -- (2.000,0.40) -- (0.000,0.40) -- cycle;
\fill[rgb color={0.40,0.50,0.01}, opacity=0.75] (0.000,0.40) -- (2.000,0.40) -- (2.000,0.80) -- (0.000,0.80) -- cycle;
\fill[rgb color={0.40,0.50,0.01}, opacity=0.75] (0.000,0.80) -- (2.000,0.80) -- (2.000,1.20) -- (0.000,1.20) -- cycle;
\fill[rgb color={0.40,0.50,0.01}, opacity=0.75] (0.000,1.20) -- (2.000,1.20) -- (2.000,1.60) -- (0.000,1.60) -- cycle;
\fill[rgb color={0.40,0.50,0.01}, opacity=0.75] (0.000,1.60) -- (2.000,1.60) -- (2.000,2.00) -- (0.000,2.00) -- cycle;
\fill[rgb color={0.68,0.74,0.48}, opacity=0.75] (0.000,2.00) -- (2.000,2.00) -- (2.000,2.40) -- (0.000,2.40) -- cycle;
\fill[rgb color={0.95,0.96,0.92}, opacity=0.75] (0.000,2.40) -- (2.000,2.40) -- (2.000,2.80) -- (0.000,2.80) -- cycle;
\fill[rgb color={0.99,0.99,0.98}, opacity=0.75] (0.000,2.80) -- (2.000,2.80) -- (2.000,3.20) -- (0.000,3.20) -- cycle;
% ...
\end{tikzpicture}
\end{document}

ampliar imagen

ingrese la descripción de la imagen aquí

Respuesta1

Creo que es un artefacto del lector de PDF. Aparecen líneas blancas en evince y líneas oscuras en AR9/Linux, ambas dependiendo de la escala de vista.

Si la línea del borde del área de relleno no se encuentra en un borde de píxeles, entonces el visor de PDF tiene que decidir cómo colorear estos píxeles del borde. Luego, en evidencia, se dejan en blanco y en AR obtienen color de ambas áreas de relleno ( opacity=75).

Por lo tanto, usaría una imagen de mapa de bits. Ejemplo, tuprimera imagen tiene 26 columnas. Después de escalarlo en gimp a un ancho de 26 píxeles, obtengo unimagencon 26 x 37 píxeles:xUnJo.png

En el documento TeX la imagen se vuelve a ampliar, por ejemplo:

\documentclass{article}
\usepackage{graphicx}
\pagestyle{empty}

\begin{document}
\noindent
\includegraphics[width=\linewidth]{xUnJo.png}
\end{document}

Resultado

Transparencia

El archivo de la pregunta usa opacity=0.75. Hay dos formas de admitir esto mediante mapas de bits:

  • PNG admite transparencia mediante un canal alfa.
  • El mapa de bits se puede crear sin transparencia (también el tamaño del archivo debe ser menor sin canal alfa). Y la transparencia se agrega cuando se incluye la imagen.

Generación de mapas de bits

  • Acercamiento directo.

    Los valores de color se escriben directamente en el archivo de imagen.Mapa de píxeles portátilEs un formato fácil, porque conoce una versión ASCII. Ejemplo para MWE:

    P3
    # The P3 means RGB colors in ASCII.
    # Next line: 1 row, 9 columns (from bottom to top)
    # Following line: max. color
    # Then image data as integers.
    1 9
    255
    252 252 250
    242 245 235
    173 189 122
    173 189 122
    102 127 3
    102 127 3
    102 127 3
    102 127 3
    102 127 3
    

    Luego la imagen se puede convertir a PNG, por ejemplo conpnmtopngde las herramientas Netpbm:

    pnmtopng <myimage.ppm >myimage.png
    
  • Enfoque indirecto.

    El tikzpictureva en una página/documento separado sin márgenes. Luego, la versión PDF se puede convertir en una imagen con el número de columnas/filas como ancho/alto en píxeles. Ejemplo de conversión con ImageMagick y una imagen con 26 columnas y 37 filas:

    convert -resize 26x37 myimage.pdf myimage.png
    

información relacionada