我正在尝试使用 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 像素:
在 TeX 文档中,图像再次被放大,例如:
\documentclass{article}
\usepackage{graphicx}
\pagestyle{empty}
\begin{document}
\noindent
\includegraphics[width=\linewidth]{xUnJo.png}
\end{document}
透明度
问题中的文件使用opacity=0.75
。有两种方法可以使用位图来支持此功能:
- PNG 通过 alpha 通道支持透明度。
- 可以创建不带透明度的位图(没有 alpha 通道时文件大小也会更小)。包含图像时会添加透明度。
位图生成
直接的方法。
颜色值直接写入图像文件中。便携式像素地图是一种简单的格式,因为它知道 ASCII 版本。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,例如使用
pnmtopng
Netpbm 工具:pnmtopng <myimage.ppm >myimage.png
间接方法。
进入
tikzpicture
单独的页面/文档,没有边距。然后 PDF 版本可以转换为具有列/行数作为像素宽度/高度的图像。使用 ImageMagick 的转换示例和具有 26 列和 37 行的图像:convert -resize 26x37 myimage.pdf myimage.png