Ich versuche, mit TikZ ein Dichtediagramm zu erstellen \fill
, indem ich dicht gestapelte Rechtecke verwende. Sind die dünnen, unerwünschten Ränder im Bild ein Artefakt der Darstellung oder ein Merkmal von fill
? Können sie eliminiert/geglättet werden?
\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}
Antwort1
Ich denke, es ist ein Artefakt des PDF-Readers. Ich bekomme weiße Linien in Evince und dunkle Linien in AR9/Linux, beides abhängig vom Anzeigemaßstab.
Liegt die Randlinie der Füllfläche nicht auf einem Pixelrand, so muss der PDF-Viewer entscheiden, wie diese Randpixel eingefärbt werden. In evince bleiben sie dann frei, in AR erhalten sie die Farbe aus beiden Füllflächen ( opacity=75
).
Daher würde ich stattdessen ein Bitmap-Bild verwenden. Beispiel: Ihrerstes Bild hat 26 Spalten. Nach dem Skalieren in Gimp auf eine Breite von 26 Pixeln erhalte ich eineBildmit 26 x 37 Pixeln:
Im TeX-Dokument wird das Bild noch einmal vergrößert, zB:
\documentclass{article}
\usepackage{graphicx}
\pagestyle{empty}
\begin{document}
\noindent
\includegraphics[width=\linewidth]{xUnJo.png}
\end{document}
Transparenz
Die Datei in der Frage verwendet opacity=0.75
. Es gibt zwei Möglichkeiten, dies mit Bitmaps zu unterstützen:
- PNG unterstützt Transparenz durch einen Alphakanal.
- Das Bitmap kann ohne Transparenz erstellt werden (ohne Alphakanal sollte auch die Dateigröße kleiner sein). Und die Transparenz wird hinzugefügt, wenn das Bild eingefügt wird.
Bitmap-Generierung
Direkte Annäherung.
Die Farbwerte werden direkt in die Bilddatei geschrieben.Tragbares PixMapist ein einfaches Format, da es eine ASCII-Version kennt. Beispiel für das 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
Anschließend kann das Bild in PNG umgewandelt werden, z.B. mit
pnmtopng
der Netpbm-Tools:pnmtopng <myimage.ppm >myimage.png
Indirekter Ansatz.
Das
tikzpicture
kommt in eine separate Seite/Dokument ohne Ränder. Anschließend kann die PDF-Version in ein Bild mit der Anzahl der Spalten/Zeilen als Pixelbreite/-höhe umgewandelt werden. Konvertierungsbeispiel mit ImageMagick und einem Bild mit 26 Spalten und 37 Zeilen:convert -resize 26x37 myimage.pdf myimage.png