
Ich versuche, ein Bild in Ti neu zu erstellenkZ. Unten links ist das Original und unten rechts ist meine bisherige Arbeit.
Hier ist ein MWE, das mein aktuelles Ergebnis generiert:
\documentclass[margin=2mm]{standalone}
\usepackage{tikz}
\usepackage{amsmath}
\usetikzlibrary{decorations.pathreplacing,positioning}
\begin{document}
\pgfdeclareverticalshading{rainbow}{2cm}{color(0mm)=(red); color(4mm)=(orange); color(7mm)=(yellow); color(8mm)=(yellow); color(11mm)=(green); color(14mm)=(blue!50); color(15mm)=(blue!50); color(20mm)=(purple)}
\begin{tikzpicture}[yscale=1.4]
\footnotesize
\begin{scope}[
every node/.style={black,midway,text width=2cm,align=center}
]
\fill [gray!50] (0,0) rectangle (2,1) node{Radio waves};
\fill [brown!65!black!55] (0,1) rectangle (2,3.5) node{Microwave};
\fill [brown!60!red!40] (0,3.5) rectangle (2,4.75) node{Thermal infrared};
\fill [brown!40!red!60] (0,4.75) rectangle (2,5.625) node{Middle infrared};
\fill [brown!20!red!70] (0,5.625) rectangle (2,6.375) node{Shortwave infrared};
\fill [red!80] (0,6.375) rectangle (2,6.875) node{Near infrared};
\shade [shading=rainbow] (0,6.875) rectangle (2,7.5) node{Visible};
\fill [red!60!blue!30] (0,7.5) rectangle (2,8.75) node{Ultraviolet};
\fill [red!20!blue!27] (0,8.75) rectangle (2,10.375) node{X-rays};
\fill [red!20!blue!27] (0,10.375) rectangle (2,12) node{Gamma rays};
\end{scope}
\draw (0,0) -- (0,12);
\draw (2,0) -- (2,12);
\draw [densely dashed] (0,7.75) -- ++(2,0) node[right,text width=1cm]{0.28};
\foreach \y/\val in {1/$10^6$\\(1 m),3.5/$10^3$\\(1 mm),4.75/5.50,5.625/3.00,6.375/1.50,6.875/0.70,7.5/0.40,8.75/$0.01(10^{-2})$,10.375/} {
\draw (0,\y) -- ++(2,0) node[right,text width=1cm]{\val};
}
\node [anchor=west,text width=1cm] at (2,2.6) {$10^4$};
\node [anchor=west,text width=1cm] at (2,9.6) {$10^{-4}$};
\node [anchor=west,text width=1cm] at (2,11.8) {$10^{-8}$};
\node [rotate=90] at (3.6,6) {Micrometers ($\mu$m)};
\shade [shading=rainbow] (-2,6.375) rectangle (-1.5,8);
\draw [densely dashed] (0,6.875) -- (-1.5,6.375) (0,7.5) -- (-1.5,8);
\begin{scope}[node distance=-1.6pt]
\node (a) at (-2.5,7.9) {0.400};
\node (b) [below=of a] {0.424};
\node (c) [below=of b] {0.491};
\node (d) [below=of c] {0.575};
\node (e) [below=of d] {0.585};
\node (f) [below=of e] {0.647};
\node (g) [below=of f] {0.710};
\end{scope}
\begin{scope}[
every path/.style={decorate,decoration={brace,mirror}},
every node/.style={left=1.3cm,anchor=west}
]
\draw (a.west) -- node(v){Violet} (b.west);
\draw (b.west) -- node{Blue} (c.west);
\draw (c.west) -- node{Green} (d.west);
\draw (d.west) -- node{Yellow} (e.west);
\draw (e.west) -- node{Orange} (f.west);
\draw (f.west) -- node(r){Red} (g.west);
\end{scope}
\draw [decorate,decoration={brace,mirror}] (v.north west) -- node[rotate=90,above]{Visible light} (r.south west);
\node [anchor=west,text width=3cm] at (-4.7,11.2) {Energy discharges from atomic nuclei};
\node [anchor=west,text width=3cm] at (-4.7,9.5) {\quad(hard X-ray)\\Medical applications\\\quad(soft X-ray)};
\node [anchor=west,text width=3cm] at (-4.7,4.1) {Heat lamp};
\node [anchor=west,text width=3cm] at (-4.7,2.3) {Microwave\\radar};
\node [anchor=west,text width=3cm] at (-4.7,0.5) {Television\\FM radio\\[6pt]AM radio};
\end{tikzpicture}
\end{document}
Wie Sie sehen, habe ich fast alles so hinbekommen, dass es mir gefällt. Ich kann jedoch nicht herausfinden, wie ich die Regenbogenschattierung erstelle, die sich gleichmäßig nach außen fächert. Noch einmal: Ich kann die Regenbogenschattierung linear wie \pgfdeclareverticalshading
gezeigt erstellen, aber ich weiß nicht, wie ich den trapezförmigen Übergangsbereich von der gequetschten Schattierung mit der Aufschrift „sichtbar“ zur längeren Schattierung mit den Zahlen links davon erstelle. Ich weiß, dass es eine Kleinigkeit ist, aber ich bin einfach neugierig, weil ich auf dieser Website und im PGF-Handbuch viel herumgeschaut habe und es nicht herausfinden konnte :)
Lassen Sie mich wissen, wenn ich noch etwas bereitstellen kann, danke!
Antwort1
Mit einem kleinen Trick.
\documentclass[margin=2mm]{standalone}
\usepackage{tikz}
\usepackage{amsmath}
\usetikzlibrary{decorations.pathreplacing,positioning}
\begin{document}
\pgfdeclareverticalshading{rainbow}{2cm}{color(0mm)=(red); color(4mm)=(orange); color(7mm)=(yellow); color(8mm)=(yellow); color(11mm)=(green); color(14mm)=(blue!50); color(15mm)=(blue!50); color(20mm)=(purple)}
\begin{tikzpicture}[yscale=1.4]
\footnotesize
\begin{scope}[
every node/.style={black,midway,text width=2cm,align=center}
]
\fill [gray!50] (0,0) rectangle (2,1) node{Radio waves};
\fill [brown!65!black!55] (0,1) rectangle (2,3.5) node{Microwave};
\fill [brown!60!red!40] (0,3.5) rectangle (2,4.75) node{Thermal infrared};
\fill [brown!40!red!60] (0,4.75) rectangle (2,5.625) node{Middle infrared};
\fill [brown!20!red!70] (0,5.625) rectangle (2,6.375) node{Shortwave infrared};
\fill [red!80] (0,6.375) rectangle (2,6.875) node{Near infrared};
\shade [shading=rainbow] (0,6.875) rectangle (2,7.5) node{Visible};
\fill [red!60!blue!30] (0,7.5) rectangle (2,8.75) node{Ultraviolet};
\fill [red!20!blue!27] (0,8.75) rectangle (2,10.375) node{X-rays};
\fill [red!20!blue!27] (0,10.375) rectangle (2,12) node{Gamma rays};
\end{scope}
\draw (0,0) -- (0,12);
\draw (2,0) -- (2,12);
\draw [densely dashed] (0,7.75) -- ++(2,0) node[right,text width=1cm]{0.28};
\foreach \y/\val in {1/$10^6$\\(1 m),3.5/$10^3$\\(1 mm),4.75/5.50,5.625/3.00,6.375/1.50,6.875/0.70,7.5/0.40,8.75/$0.01(10^{-2})$,10.375/} {
\draw (0,\y) -- ++(2,0) node[right,text width=1cm]{\val};
}
\node [anchor=west,text width=1cm] at (2,2.6) {$10^4$};
\node [anchor=west,text width=1cm] at (2,9.6) {$10^{-4}$};
\node [anchor=west,text width=1cm] at (2,11.8) {$10^{-8}$};
\node [rotate=90] at (3.6,6) {Micrometers ($\mu$m)};
\shade [shading=rainbow] (-2,6.375)coordinate(DLVis) rectangle (-1.5,8) coordinate(URVis);
% trick
\foreach \hShift[evaluate=\hShift as \vShift using \hShift/3] in {0,0.01,...,1.5} {
\shade[shading=rainbow] ([shift={(\hShift cm,-\vShift cm)}]URVis) -- +(0.01cm,0) |- ([shift={(\hShift cm,\vShift cm)}]URVis |- DLVis) -- cycle;
}
%\draw [densely dashed] (0,6.875) -- (-1.5,6.375) (0,7.5) -- (-1.5,8);
\begin{scope}[node distance=-1.6pt]
\node (a) at (-2.5,7.9) {0.400};
\node (b) [below=of a] {0.424};
\node (c) [below=of b] {0.491};
\node (d) [below=of c] {0.575};
\node (e) [below=of d] {0.585};
\node (f) [below=of e] {0.647};
\node (g) [below=of f] {0.710};
\end{scope}
\begin{scope}[
every path/.style={decorate,decoration={brace,mirror}},
every node/.style={left=1.3cm,anchor=west}
]
\draw (a.west) -- node(v){Violet} (b.west);
\draw (b.west) -- node{Blue} (c.west);
\draw (c.west) -- node{Green} (d.west);
\draw (d.west) -- node{Yellow} (e.west);
\draw (e.west) -- node{Orange} (f.west);
\draw (f.west) -- node(r){Red} (g.west);
\end{scope}
\draw [decorate,decoration={brace,mirror}] (v.north west) -- node[rotate=90,above]{Visible light} (r.south west);
\node [anchor=west,text width=3cm] at (-4.7,11.2) {Energy discharges from atomic nuclei};
\node [anchor=west,text width=3cm] at (-4.7,9.5) {\quad(hard X-ray)\\Medical applications\\\quad(soft X-ray)};
\node [anchor=west,text width=3cm] at (-4.7,4.1) {Heat lamp};
\node [anchor=west,text width=3cm] at (-4.7,2.3) {Microwave\\radar};
\node [anchor=west,text width=3cm] at (-4.7,0.5) {Television\\FM radio\\[6pt]AM radio};
\end{tikzpicture}
\end{document}