TikZ ゼロ幅の境界線を塗りつぶす

TikZ ゼロ幅の境界線を塗りつぶす

密に積み重ねられた長方形を使用して、TikZ で密度プロットを作成しようとしています\fill。画像内の細い不要な境界線は、レンダリングのアーティファクトですか、それとも の特徴ですかfill? これらを除去/滑らかにすることはできますか?

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

画像を拡大

ここに画像の説明を入力してください

答え1

これは PDF リーダーのアーティファクトだと思います。evince では白い線が表示され、AR9/Linux では暗い線が表示されますが、どちらも表示スケールによって異なります。

塗りつぶし領域の境界線がピクセル境界上にない場合、PDF ビューアはこれらの境界ピクセルをどのように色付けするかを決定する必要があります。 Evince ではそれらは空白のままにされ、AR では両方の塗りつぶし領域から色を取得します ( opacity=75)。

したがって、代わりにビットマップ画像を使用します。たとえば、最初の画像 26列あります。GIMPで幅26ピクセルに拡大すると、画像26 x 37 ピクセルの場合:xUnJo.png

TeX ドキュメントでは、画像が再び拡大されます。例:

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

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

結果

透明性

質問のファイルでは を使用していますopacity=0.75。ビットマップを使用してこれをサポートするには、次の 2 つの方法があります。

  • PNG はアルファ チャネルによる透明度をサポートします。
  • ビットマップは透明度なしで作成できます (アルファ チャネルがないとファイル サイズも小さくなります)。また、画像が含まれている場合は透明度が追加されます。

ビットマップ生成

  • 直接的なアプローチ。

    色の値は画像ファイルに直接書き込まれます。ポータブル PixMapASCII バージョンが認識されるため、簡単な形式です。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
    

    その後、画像をPNGに変換することができます。例えば、pnmtopngNetpbm ツールの:

    pnmtopng <myimage.ppm >myimage.png
    
  • 間接的なアプローチ。

    余白のない別のページ/ドキュメントに入りtikzpictureます。その後、PDF バージョンをピクセル幅/高さとして列数/行数を持つ画像に変換できます。ImageMagick を使用した 26 列 37 行の画像の変換例:

    convert -resize 26x37 myimage.pdf myimage.png
    

関連情報