Edit and compile if you like:
% Author: Izaak Neutelings (May 2020)
\documentclass[border=3pt,tikz]{standalone}
\tikzset{>=latex} % for LaTeX arrow head
\usepackage{ifthen}
\usepackage{xcolor}
\usepackage{physics}
\usepackage{siunitx}
\colorlet{wavecol}{orange!35!black}
\colorlet{freqcol}{green!25!black}
\colorlet{enercol}{blue!35!black}
\pgfdeclareverticalshading{rainbow}{100bp}{
color(0bp)=(red); color(25bp)=(red); color(35bp)=(yellow);
color(45bp)=(green); color(55bp)=(cyan); color(65bp)=(blue);
color(75bp)=(violet); color(100bp)=(violet)
}
\begin{document}
% ELECTROMAGNETIC SPECTRUM
\begin{tikzpicture}[xscale=1]
\def\h{1}
\def\radio{-4}
\def\micro{0}
\def\IR{3}
\def\red{6.10} % log(700e-9) = -6.15490196
\def\blue{6.40} % log(400e-9) = -6.39794001
\def\UV{6.40}
\def\Xray{8}
\def\gamm{11}
\def\last{12}
\def\radiof{-5}
\def\dx{0.6}
\def\yE{-1.1*\h}
\def\tick#1#2#3{\draw[thick,#2] (#1+.08) --++ (0,-.16) node[below=-2pt,scale=1] {\strut #3};}
\def\ticka#1#2#3{\draw[thick,#2] (#1+.08) --++ (0,-.16) node[above=2pt,scale=1] {\strut #3};}
% MIDDLE
\fill[green!60!black!10] (\radio-0.82*\dx,0) rectangle (\IR,\h);
\fill[yellow!60!black!10] (\micro,0.18*\h) rectangle (\IR,0.8*\h);
\fill[red!60!black!10] (\IR,0) rectangle (\red,\h);
\fill[blue!60!violet!80!black!10] (\UV,0) rectangle (\Xray,\h);
\fill[blue!50!black!15] (\Xray,0) rectangle (\gamm,\h);
\fill[blue!40!black!25] (\gamm,0) rectangle (\last+0.8*\dx,\h);
\shade[shading=rainbow,shading angle=-90] (\red,0) rectangle (\blue,\h);
\node at ({(\radio+\micro)/2},\h/2) {\strut radio};
\node at ({(\micro+\IR)/2}, \h/2) {\strut micro};
\node at ({(\IR+\red)/2}, \h/2) {\strut IR};
%\node at (\red, \h/2) {red};
%\node at (\red, \h/2) {blue};
\node at ({(\UV+\Xray)/2}, \h/2) {\strut UV};
\node at ({(\Xray+\gamm)/2}, \h/2) {\strut X ray};
\node at ({(\gamm+\last+0.8*\dx)/2}, \h/2) {\strut gamma};
% WAVELENGTH
\draw[->,thick,wavecol] (\last+\dx,\h) -- (\radio-1.5*\dx,\h) node[above left=-3,scale=1.1] {$\lambda$ [\si{m}]};
\foreach \x [evaluate={\i=int(-\x)}] in {\radio,...,\last}{
\ifthenelse{\i=0}{ \ticka{\x,\h}{wavecol}{$1$} }
{ \ticka{\x,\h}{wavecol}{$10^{\i}$} }
}
\node[wavecol,scale=1] at (-3,1.71*\h) {\strut km};
\node[wavecol,scale=1] at ( 0,1.71*\h) {\strut m};
\node[wavecol,scale=1] at ( 3,1.71*\h) {\strut mm};
\node[wavecol,scale=1] at ( 6,1.71*\h) {\strut \si{\mu m}};
\node[wavecol,scale=1] at ( 9,1.71*\h) {\strut pm};
\node[wavecol,scale=1] at (12,1.71*\h) {\strut fm};
%\node[wavecol,scale=1] at (15,1.71*\h) {\strut am};
% FREQUENCY
% log(f) = log(c) - log(lambda)
% log(c) = log(2.997e8) = 8.4766867429
\draw[->,thick,freqcol] (\radio-\dx,0) -- (\last+1.5*\dx,0) node[below right=-3,scale=1.1] {$f$ [\si{Hz}]};
\foreach \x [evaluate={\i=int(\x+9);\X=\x+0.53}] in {\radiof,...,\last}{
\tick{\X,0}{freqcol}{$10^{\i}$}
}
%\node[freqcol,scale=1] at (-8.47+ 3,-0.65*\h) {\strut kHz};
\node[freqcol,scale=1] at (-8.47+ 6,-0.71*\h) {\strut MHz};
\node[freqcol,scale=1] at (-8.47+ 9,-0.71*\h) {\strut GHz};
\node[freqcol,scale=1] at (-8.47+12,-0.71*\h) {\strut THz};
\node[freqcol,scale=1] at (-8.47+15,-0.71*\h) {\strut PHz};
\node[freqcol,scale=1] at (-8.47+18,-0.71*\h) {\strut EHz};
% ENERGY
% log(E) = log(hc) - log(lambda)
% log(hc) = log(2.997e8*4.135e-15) = -5.9068377432
\draw[->,thick,enercol] (\radio-\dx,\yE) -- (\last+1.5*\dx,\yE) node[below right=-3,scale=1.1] {$E$ [\si{eV}]};
\foreach \x [evaluate={\i=int(\x-6);\X=\x-0.09}] in {\radio,...,\last}{
\ifthenelse{\i=0}{ \tick{\X,\yE}{enercol}{$1$} }
{ \tick{\X,\yE}{enercol}{$10^{\i}$} }
}
%\node[enercol,scale=1] at (5.91-15,\yE-0.69*\h) {\strut feV};
%\node[enercol,scale=1] at (5.91-12,\yE-0.69*\h) {\strut peV};
\node[enercol,scale=1] at (5.91- 9,\yE-0.69*\h) {\strut neV};
\node[enercol,scale=1] at (5.91- 6,\yE-0.69*\h) {\strut \si{\mu eV}};
\node[enercol,scale=1] at (5.91- 3,\yE-0.69*\h) {\strut meV};
\node[enercol,scale=1] at (5.91+ 0,\yE-0.69*\h) {\strut eV};
\node[enercol,scale=1] at (5.91+ 3,\yE-0.69*\h) {\strut keV};
\node[enercol,scale=1] at (5.91+ 6,\yE-0.69*\h) {\strut MeV};
%\node[enercol,scale=1] at (5.91+9,\yE-0.69*\h) {\strut GeV};
\end{tikzpicture}
\end{document}
Click to download: electromagnetic_spectrum.tex • electromagnetic_spectrum.pdf
Open in Overleaf: electromagnetic_spectrum.tex

Literally unusable for normal article documents.
Do you have some actual constructive feedback?
If the issue is the width of the figure when you blindly copy-paste the TikZ code into your text, all you need to do is add something like
scale=0.7,transform shapeto the options to\begin{tikzpicture}.I never run into these issue, because I typically compile TikZ figures separately from a standalone LaTeX file and load them as (multipage) PDFs to keep the code clean and compilation fast.