TikZ preenche borda com largura zero

TikZ preenche borda com largura zero

Estou tentando criar um gráfico de densidade com TikZ usando \fillretângulos bem empilhados. As finas bordas indesejadas na imagem são um artefato de renderização ou uma característica de fill? Eles podem ser eliminados/suavizados?

\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 imagem

insira a descrição da imagem aqui

Responder1

Acho que é um artefato do leitor de PDF. Recebo linhas brancas em evidências e linhas escuras em AR9/Linux, ambas dependendo da escala de visualização.

Se a linha da borda da área de preenchimento não estiver na borda de um pixel, o visualizador de PDF deverá decidir como colorir esses pixels da borda. Então, no Evince, eles são deixados em branco e no AR eles obtêm a cor de ambas as áreas de preenchimento ( opacity=75).

Portanto, eu usaria uma imagem bitmap. Exemplo, seuprimeira imagem tem 26 colunas. Depois de dimensioná-lo no gimp para largura de 26 pixels, recebo umaimagemcom 26 x 37 pixels:xUnJo.png

No documento TeX a imagem é ampliada novamente, por exemplo:

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

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

Resultado

Transparência

O arquivo da pergunta usa opacity=0.75. Existem duas maneiras de oferecer suporte a isso usando bitmaps:

  • PNG suporta transparência por um canal alfa.
  • O bitmap pode ser criado sem transparência (também o tamanho do arquivo deve ser menor sem canal alfa). E a transparência é adicionada quando a imagem é incluída.

Geração de bitmap

  • Abordagem direta.

    Os valores das cores são gravados diretamente no arquivo de imagem.PixMap portátilé um formato fácil, pois conhece uma versão ASCII. Exemplo para o 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
    

    Então a imagem pode ser convertida para PNG, por exemplo, compnmtopngdas ferramentas Netpbm:

    pnmtopng <myimage.ppm >myimage.png
    
  • Abordagem indireta.

    Isso tikzpicturevai para uma página/documento separado sem margens. Em seguida, a versão PDF pode ser convertida em uma imagem com o número de colunas/linhas como largura/altura em pixels. Exemplo de conversão com ImageMagick e uma imagem com 26 colunas e 37 linhas:

    convert -resize 26x37 myimage.pdf myimage.png
    

informação relacionada