Wie zeichne ich ein Horizontdiagramm in Tikz?

Wie zeichne ich ein Horizontdiagramm in Tikz?

AlsoHorizont Diagrammsieht so aus: Bildbeschreibung hier eingeben

Ermöglicht eine einfache Darstellung von Seiten mit Funktionsdiagrammen, die einzeln untersucht werden können, gleichzeitig aber auch das Gesamtbild und Funktionszusammenhänge zeigen. Außerdem können Horizon Charts problemlos in Schwarzweißformaten ausgedruckt werden.

Kurz gesagt besteht die Idee eines solchen Diagramms darin, dass iSie für jede Zeile ein erhalten Y_i=F_i(X)und es so darstellen, dass für jede Zeile Y_i > RowHeighteine Overlay-Ebene und YY_i = YY_i - RowHeighteine YY_i > RowHeightweitere Overlay-Ebene usw. angezeigt werden. Was mit jeder Zeilenfunktion geschieht, ist in der Abbildung gut beschrieben.von hier:

Bildbeschreibung hier eingeben

verwandelt sich in

Bildbeschreibung hier eingeben

Wie zeichnet man also mit Tikz ein statisches Horizontdiagramm?

Antwort1

Vielleicht verstehe ich die Frage falsch, aber so wie ich sie lese, brauchen Sie nur Clips und kleine relative Verschiebungen.

\documentclass[border=3mm]{standalone}
\usepackage{tikz}
\newsavebox\DuckBox
\sbox\DuckBox{\begin{tikzpicture}[trig format=rad]
 \fill[blue!20] plot[variable=\x,domain=0:10,samples=31,smooth] 
  (\x,{1.5+(1+0.5*rnd)*sin(\x)*sin(\x)}) |- (0,0);
 \fill[blue!40] plot[variable=\x,domain=0:10,samples=61,smooth] 
  (\x,{1+(1+0.5*rnd)*sin(\x)*sin(\x)*sin(2*\x)*sin(2*\x)}) |- (0,0);
 \fill[blue!60] plot[variable=\x,domain=0:10,samples=61,smooth] 
  (\x,{0.5+(1+0.5*rnd)*sin(\x)*sin(\x)*sin(2*\x)*sin(2*\x)}) |- (0,0);
\end{tikzpicture}}
\begin{document}
\begin{tikzpicture}
\foreach \X [count=\Y] in {pft,blub,bla,quack,meow}
 {\begin{scope}
  \clip (-5,\Y*0.52) rectangle (5,0.5+\Y*0.52);
  \node[anchor=south] at (0,0.2+\Y*0.15) {\usebox\DuckBox};
  \node[anchor=south west,font=\sffamily] at (-5,\Y*0.52) {\X};
 \end{scope}}
\end{tikzpicture}
\end{document}

Bildbeschreibung hier eingeben

Für die neue Version der Frage ist die Antwort qualitativ dieselbe.

\documentclass[border=3mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.pathmorphing}
\newsavebox\DuckBox
\sbox\DuckBox{\begin{tikzpicture}[trig format=rad]
 \path[save path=\pathA] plot[variable=\x,domain=0:10,samples=151] 
  (\x,{-(1.2+0.5*rnd)*sin(1.15*\x-1)+0.5*sin(2*\x)+\x/3}) |- (0,0);
 \foreach [count=\Y starting from 0] \X in 
    {blue!20,orange!20,orange!40,orange!60,orange!80}
  {\begin{scope}
    \clip (0,1.5*\Y-1.5) rectangle (10,1.5*\Y);
    \fill[\X,use path=\pathA];
   \end{scope}}
\end{tikzpicture}}
\begin{document}
\begin{tikzpicture}
\node[anchor=south west,outer sep=0pt,inner sep=0pt] 
  at (0,4) {\usebox\DuckBox};
\clip (0,0) rectangle (10,1.5);
\node[anchor=south west,outer sep=0pt,inner sep=0pt,yscale=-1] 
  at (0,1.5) {\usebox\DuckBox};
\foreach \Y in {1,...,4}
 {\node[anchor=south west,outer sep=0pt,inner sep=0pt] 
  at (0,-1.5*\Y) {\usebox\DuckBox};
 }
\end{tikzpicture}
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen