Plot of black body formulas: Rayleigh-Jeans, Wien and Planck. Inspiration from Wikipedia.
Find other black body diagrams via the “black body” tag: black body color gradient, cavity model, Plank oscillators. For more figures related to thermodynamics, see the “thermodynamics” category.
Including Wien's displacement law:
Comparing black body colors in a log-log plot:
Comparing Planck to Rayleigh-Jeans & Wien in a log-log plot for T = 300 K:
For T = 3000 K:
Comparison for several temperatures:
Redshift of the cosmic microwave background (CMB) from 3000K to ~3K due to the expansion of the universe:
Small variations of the CMB temperature (note real variation are actually on the order of ΔT ~ 20 𝜇K after subtracting the dipole ΔT ~ 3 mK due to the Doppler effect of our motion relative to the CMB):
Edit and compile if you like:
% Author: Izaak Neutelings (March 2019) \documentclass[border=3pt,tikz]{standalone} \tikzset{>=latex} % for LaTeX arrow head \usepackage{pgfplots} % for the axis environment \pgfplotsset{ compat=1.13, % TikZ coordinates <-> axes coordinates /pgf/number format/1000 sep={}, legend image code/.code={ \draw[mark repeat=2,mark phase=2] plot coordinates {(0cm,0cm) (0.22cm,0cm) (0.44cm,0cm)};% } } \usepackage{siunitx} % redraw axis on top \makeatletter \newcommand{\pgfplotsdrawaxis}{\pgfplots@draw@axis} \makeatother \pgfplotsset{axis line on top/.style={after end axis/.append code={\pgfplotsdrawaxis}} } % CUSTOM COLORS % See https://tikz.net/blackbody_color/ \definecolor{1000K}{rgb}{1,0.0337,0} \definecolor{2000K}{rgb}{1,0.2647,0.0033} \definecolor{3000K}{rgb}{1,0.4870,0.1411} \definecolor{4000K}{rgb}{1,0.6636,0.3583} \definecolor{5000K}{rgb}{1,0.7992,0.6045} \definecolor{6000K}{rgb}{1,0.9019,0.8473} \definecolor{8000K}{rgb}{0.7874,0.8187,1} \definecolor{10000K}{rgb}{0.6268,0.7039,1} \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) } \colorlet{myred}{red!70!black} \colorlet{mygreen}{green!70!black} \colorlet{mydarkgreen}{green!55!black} % PLANCK & RAYLEIGH-JEANS % 2hc^2/lambda^5 = 2 * 6.62607015e-34 * 299792458^2 % = 1.191042972e-16 % W.m -> kW.nm: 1.191042972e26 % hc/k lambda T = 6.62607015e-34*299792458/(1.38064852e-23) % = 0.01438777378 % m -> nm: 0.01438777378e9 % 2ckT/lambda^4 = 2 * 299792458 * 1.38064852e-23 % = 8.278160269e-15 % W.m -> kW.nm: 8.278160269e18 \pgfmathdeclarefunction{planck}{2}{% \pgfmathparse{1.191042972e26/(#1^5)/(exp(0.01439e9/(#1*#2))-1)}% } \pgfmathdeclarefunction{rayleighjeans}{2}{% \pgfmathparse{8.278160269e18*#2/(#1^4)}% } \pgfmathdeclarefunction{wien}{2}{% \pgfmathparse{1.191042972e26/(#1^5)*exp(-0.01439e9/(#1*#2))}% } \pgfmathdeclarefunction{lampeak}{1}{% % Wien's displacement law \pgfmathparse{2.898e6/#1}% } \begin{document} % BLACK BODY - 3000, 4000, 5000K \begin{tikzpicture} \message{^^JBlack body} \def\N{60} \def\xmax{3100} \def\ymax{1.36e10} \def\tick#1#2{\draw[thick] (#1+.01*\ymax) -- (#1-.01*\ymax) node[below=-.5pt,scale=0.75] {#2};} \begin{axis}[ every axis plot/.style={ mark=none,samples=\N,domain=5:\xmax,smooth}, xmin=(-.05*\xmax), xmax=(1.05*\xmax), ymin=(-.08*\ymax), ymax=(1.08*\ymax), restrict y to domain=0:\ymax, axis lines=middle, axis line style=thick, %enlargelimits=upper, % extend the axes a bit to the right and top tick style={black,thick}, ticklabel style={scale=0.8}, %xtick style={draw=none},xticklabels=none, max space between ticks=26, xlabel={Wavelength $\lambda$ [nm]}, ylabel={Power $P$ [kW/sr\,m$^2$\,nm]}, xlabel style={at={(rel axis cs:0.5,0)},below=-1pt,font=\small}, ylabel style={at={(rel axis cs:-0.11,0.5)},rotate=90}, width=9cm, height=7cm, %clip=false tick scale binop=\times, every y tick scale label/.style={at={(rel axis cs:0,1)},anchor=south}] ] % RAINBOW \shade[shading=rainbow,shading angle=90,opacity=0.5] (380,0) rectangle (740,\ymax); \node[above=-1pt,scale=0.8] at (200,\ymax) {\strut UV}; % 10 - 400 nm \node[above=-1pt,scale=0.8] at (570,\ymax) {\strut optical}; % 380 - 740 nm \node[above=-1pt,scale=0.8] at (920,\ymax) {\strut IR}; % 740 - 1050 nm % PLANCK \addplot[very thick,red] {planck(x,3000)}; \addplot[very thick,orange] {planck(x,4000)}; \addplot[very thick,samples=3*\N,blue] {planck(x,5000)}; %\addplot[dashed,thick,red,domain=1000:4000] {rayleighjeans(x,3000)}; %\addplot[dashed,thick,orange,domain=1000:4000] {rayleighjeans(x,4000)}; \addplot[dashed,thick,blue,domain=1000:4000] {rayleighjeans(x,5000)}; %\addplot[dashed,thick,red,domain=1000:4000] {wien(x,3000)}; %\addplot[dashed,thick,orange,domain=1000:4000] {wien(x,4000)}; %\addplot[dashed,thick,blue,domain=1000:4000] {wien(x,5000)}; %% MAXIMUM (Wien's displacement law) %\addplot[mygreen,very thin,variable=T,domain=2500:6000] % ({lampeak(T)},{planck(lampeak(T),T)}); % LABELS \node[above=0pt,scale=0.75,red] at (1150,{planck(1150,3000)}) {\SI{3000}{K}}; \node[above right=-1pt,scale=0.75,orange!80!black] at (740,{planck(740,4000)}) {\SI{4000}{K}}; \node[above right=-1pt,scale=0.75,blue] at (800,{planck(800,5000)}) {\SI{5000}{K}}; \node[above right=-1pt,scale=0.75,blue] at (1500,{rayleighjeans(1500,5000)}) {\SI{5000}{K} Rayleigh-Jeans}; %% TICKS %\tick{500,0}{500} %\tick{1000,0}{1000} %\tick{1500,0}{1500} %\tick{2000,0}{2000} %\tick{2500,0}{2500} %\tick{3000,0}{3000} \end{axis} \end{tikzpicture} % BLACK BODY - 3000, 4000, 5000K, Wien's displacement law \begin{tikzpicture} \message{^^JBlack body, Wien's displacement law} \def\N{60} \def\xmax{3100} \def\ymax{1.36e10} \def\tick#1#2{\draw[thick] (#1+.01*\ymax) -- (#1-.01*\ymax) node[below=-.5pt,scale=0.75] {#2};} \begin{axis}[ every axis plot/.style={ very thick,mark=none,samples=\N,domain=5:\xmax,smooth}, xmin=(-.05*\xmax), xmax=(1.05*\xmax), ymin=(-.08*\ymax), ymax=(1.08*\ymax), restrict y to domain=0:\ymax, axis lines=middle, axis line style=thick, %enlargelimits=upper, % extend the axes a bit to the right and top tick style={black,thick}, ticklabel style={scale=0.8}, %xtick style={draw=none},xticklabels=none, max space between ticks=26, xlabel={Wavelength $\lambda$ [nm]}, ylabel={Power $P$ [kW/sr\,m$^2$\,nm]}, xlabel style={at={(rel axis cs:0.5,0)},below=-1pt,font=\small}, ylabel style={at={(rel axis cs:-0.11,0.5)},rotate=90}, width=9cm, height=7cm, %clip=false tick scale binop=\times, every y tick scale label/.style={at={(rel axis cs:0,1)},anchor=south}] ] % RAINBOW \shade[shading=rainbow,shading angle=90,opacity=0.5] (380,0) rectangle (740,\ymax); \node[above=-1pt,scale=0.8] at (200,\ymax) {\strut UV}; % 10 - 400 nm \node[above=-1pt,scale=0.8] at (570,\ymax) {\strut optical}; % 380 - 740 nm \node[above=-1pt,scale=0.8] at (920,\ymax) {\strut IR}; % 740 - 1050 nm % PLANCK \addplot[red] {planck(x,3000)}; \addplot[orange] {planck(x,4000)}; \addplot[blue,samples=3*\N] {planck(x,5000)}; \addplot[dashed,thick,blue,domain=1000:3500] {rayleighjeans(x,5000)}; % MAXIMUM (Wien's displacement law) \addplot[mydarkgreen,thick,variable=T,domain=2200:4000,samples=40] ({lampeak(T)},{planck(lampeak(T),T)}); \addplot[mydarkgreen,thick,variable=T,domain=4000:5200,samples=100] ({lampeak(T)},{planck(lampeak(T),T)}); \fill[mydarkgreen!80!black] ({lampeak(3000)},{planck(lampeak(3000),3000)}) circle(1.5pt); \fill[mydarkgreen!80!black] ({lampeak(4000)},{planck(lampeak(4000),4000)}) circle(1.5pt); \fill[mydarkgreen!80!black] ({lampeak(5000)},{planck(lampeak(5000),5000)}) circle(1.5pt); % LABELS \node[above=0pt,scale=0.75,red] at (1150,{planck(1150,3000)}) {\SI{3000}{K}}; \node[above right=-1pt,scale=0.75,orange!80!black] at (740,{planck(740,4000)}) {\SI{4000}{K}}; \node[above right=-1pt,scale=0.75,blue] at (800,{planck(800,5000)}) {\SI{5000}{K}}; \node[above right=-1pt,scale=0.75,blue] at (1500,{rayleighjeans(1500,5000)}) {\SI{5000}{K} Rayleigh-Jeans}; \end{axis} \end{tikzpicture} % BLACK BODY - 3000, 4000, 5000K \begin{tikzpicture} \message{^^JBlack body} \def\N{60} \def\xmax{3100} \def\ymax{1.43e10} \def\tick#1#2{\draw[thick] (#1+.01*\ymax) -- (#1-.01*\ymax) node[below=-.5pt,scale=0.75] {#2};} \begin{axis}[ every axis plot/.style={ mark=none,samples=\N,domain=5:\xmax,smooth}, xmin=(0), xmax=(\xmax), ymin=(0), ymax=(\ymax), restrict y to domain=0:\ymax, %axis lines=middle, axis line style=thick, tick style={black,thick}, ticklabel style={scale=0.8}, xlabel={Wavelength $\lambda$ [nm]}, ylabel={Power $P$ [kW/sr\,m$^2$\,nm]}, xlabel style={below=-1pt,font=\small}, ylabel style={above=-1pt}, width=9cm, height=7cm, tick scale binop=\times, every y tick scale label/.style={at={(rel axis cs:0,1)},anchor=south}] ] % RAINBOW \draw[dashed] (380,{planck(380,5000)}) -- (380,\ymax); \draw[dashed] (740,{planck(740,5000)}) -- (740,\ymax); \begin{scope} \clip[variable=\x,domain=200:1000,samples=40] plot(\x,{planck(\x,5000)}) |- (200,0) -- cycle; \shade[shading=rainbow,shading angle=90,opacity=0.7] (380,0) rectangle (740,\ymax); \end{scope} % PLANCK \addplot[very thick,red] {planck(x,3000)}; \addplot[very thick,orange] {planck(x,4000)}; \addplot[very thick,samples=3*\N,blue] {planck(x,5000)}; \addplot[dashed,thick,blue,domain=1000:4000] {rayleighjeans(x,5000)}; % MAXIMUM (Wien's displacement law) \addplot[mydarkgreen,thick,variable=T,domain=2200:4000,samples=40] ({lampeak(T)},{planck(lampeak(T),T)}); \addplot[mydarkgreen,thick,variable=T,domain=4000:5000,samples=100] ({lampeak(T)},{planck(lampeak(T),T)}); \fill[mydarkgreen!80!black] ({lampeak(3000)},{planck(lampeak(3000),3000)}) circle(1.5pt); \fill[mydarkgreen!80!black] ({lampeak(4000)},{planck(lampeak(4000),4000)}) circle(1.5pt); \fill[mydarkgreen!80!black] ({lampeak(5000)},{planck(lampeak(5000),5000)}) circle(1.5pt); % LABELS \node[above=0pt,scale=0.75,red] at (1150,{planck(1150,3000)}) {\SI{3000}{K}}; \node[above right=-1pt,scale=0.75,orange!80!black] at (740,{planck(740,4000)}) {\SI{4000}{K}}; \node[above right=-1pt,scale=0.75,blue] at (800,{planck(800,5000)}) {\SI{5000}{K}}; \node[above right=-1pt,scale=0.75,blue] at (1500,{rayleighjeans(1500,5000)}) {\SI{5000}{K} Rayleigh-Jeans}; % LABELS \node[below=2pt,scale=0.8] at (200,\ymax) {\strut UV}; % 10 - 400 nm \node[below=2pt,scale=0.8] at (562,\ymax) {\strut optical}; % 380 - 740 nm \node[below=2pt,scale=0.8] at (920,\ymax) {\strut IR}; % 740 - 1050 nm \end{axis} \end{tikzpicture} % BLACK BODY LOG-LOG - colors % See https://tikz.net/blackbody_color/ \begin{tikzpicture} %[scale=2] \message{^^JBlack body colors} \def\N{40} \def\xmin{35} \def\xmax{1.7e5} \def\ymin{1e2} \def\ymax{2e12} \begin{loglogaxis}[ every axis plot post/.append style={ very thick,mark=none,domain=\xmin:\xmax,samples=\N,smooth}, xmin=\xmin, xmax=(1.01*\xmax), ymin=\ymin, ymax=\ymax, restrict y to domain=0.1*\ymin:\ymax, log basis y=10, axis line style=thick, tick style={black,thick}, ticklabel style={scale=0.8}, max space between ticks=23, yminorticks=false, xlabel={Wavelength $\lambda$ [nm]}, ylabel={Power $P$ [kW/sr\,m$^2$\,nm]}, xlabel style={at={(rel axis cs:0.5,0)},below=8pt}, ylabel style={above=-2pt}, legend style={at={(0.98,0.95)},anchor=north east,draw=none,fill=none, nodes={scale=0.7, transform shape}}, legend cell align={left}, width=8cm, height=6cm, axis line on top ] % RAINBOW \shade[shading=rainbow,shading angle=90,opacity=0.5] (380,\ymin) rectangle (740,\ymax); % PLANCK \addplot[10000K] {planck(x,10000)}; \addplot[6000K] {planck(x,7500)}; \addplot[5000K] {planck(x,5000)}; \addplot[3000K] {planck(x,3000)}; \addplot[2000K] {planck(x,2000)}; \addplot[1000K] {planck(x,1000)}; \addplot[black] {planck(x, 500)}; %\addplot[dashed,thick,black] {rayleighjeans(x,500)}; % LEGENDS \addlegendentry{\SI{10000}{K}} \addlegendentry{\SI{7500}{K}} \addlegendentry{\SI{5000}{K}} \addlegendentry{\SI{3000}{K}} \addlegendentry{\SI{2000}{K}} \addlegendentry{\SI{1000}{K}} \addlegendentry{\SI{500}{K}} \end{loglogaxis} \end{tikzpicture} % BLACK BODY LOG-LOG - Rayleigh-Jeans / Wien, 300K \begin{tikzpicture} \message{^^JRayleigh-Jeans / Wien, 300K} \def\N{40} \def\xmin{1.5e3} \def\xmax{2e6} \def\ymin{5e-4} \def\ymax{3e4} \begin{loglogaxis}[ every axis plot/.style={ very thick,mark=none,domain=\xmin:\xmax,samples=\N,smooth}, xmin=\xmin, xmax=(1.01*\xmax), ymin=\ymin, ymax=\ymax, restrict y to domain=0.1*\ymin:\ymax, log basis y=10, axis line style=thick, tick style={black,thick}, ticklabel style={scale=0.8}, %ticks=none, max space between ticks=23, yminorticks=false, xlabel={Wavelength $\lambda$ [nm]}, ylabel={Power $P$ [kW/sr\,m$^2$\,nm]}, xlabel style={at={(rel axis cs:0.5,0)},below=8pt}, ylabel style={above=-2pt}, width=8cm, height=6cm, legend style={at={(0.14,0.15)},anchor=south west,draw=none,fill=none,font=\small}, legend cell align={left}, axis line on top ] % PLANCK \addplot[black] {planck(x,300)}; \addplot[thick,blue] {rayleighjeans(x,300)}; \addplot[thick,red] {wien(x,300)}; % LEGENDS \addlegendentry{Planck} \addlegendentry{Rayleigh-Jeans} \addlegendentry{Wien} \node[scale=1] at (0.18*\xmax,0.01*\ymax) {$T=\SI{300}{K}$}; \end{loglogaxis} \end{tikzpicture} % BLACK BODY LOG-LOG - Rayleigh-Jeans / Wien, 3000K \begin{tikzpicture} \message{^^JRayleigh-Jeans / Wien, 3000K} \def\N{40} \def\xmin{1.5e2} \def\xmax{2e5} \def\ymin{5e1} \def\ymax{4e9} \begin{loglogaxis}[ every axis plot/.style={ very thick,mark=none,domain=\xmin:\xmax,samples=\N,smooth}, xmin=\xmin, xmax=(1.01*\xmax), ymin=\ymin, ymax=\ymax, restrict y to domain=0.1*\ymin:\ymax, log basis y=10, axis line style=thick, tick style={black,thick}, ticklabel style={scale=0.8}, %ticks=none, max space between ticks=23, yminorticks=false, xlabel={Wavelength $\lambda$ [nm]}, ylabel={Power $P$ [kW/sr\,m$^2$\,nm]}, xlabel style={at={(rel axis cs:0.5,0)},below=8pt}, ylabel style={above=-2pt}, width=8cm, height=6cm, legend style={at={(0.14,0.15)},anchor=south west,draw=none,fill=none,font=\small}, legend cell align={left}, axis line on top ] % RAINBOW \shade[shading=rainbow,shading angle=90,opacity=0.1] (380,\ymin) rectangle (740,\ymax); % PLANCK \addplot[black] {planck(x,3000)}; \addplot[thick,blue] {rayleighjeans(x,3000)}; \addplot[thick,red] {wien(x,3000)}; % LEGENDS \addlegendentry{Planck} \addlegendentry{Rayleigh-Jeans} \addlegendentry{Wien} \node[scale=1] at (0.17*\xmax,0.01*\ymax) {$T=\SI{3000}{K}$}; \end{loglogaxis} \end{tikzpicture} % BLACK BODY LOG-LOG - Rayleigh-Jeans / Wien \begin{tikzpicture} \message{^^JRayleigh-Jeans / Wien} \def\N{40} \def\xmin{3e2} \def\xmax{2e6} \def\ymin{1e-3} \def\ymax{1e7} \begin{loglogaxis}[ every axis plot/.style={ very thick,mark=none,domain=\xmin:\xmax,samples=\N,smooth}, xmin=\xmin, xmax=(1.01*\xmax), ymin=\ymin, ymax=\ymax, restrict y to domain=0.1*\ymin:\ymax, log basis y=10, axis line style=thick, tick style={black,thick}, ticklabel style={scale=0.8}, %ticks=none, max space between ticks=23, yminorticks=false, xlabel={Wavelength $\lambda$ [nm]}, ylabel={Power $P$ [kW/sr\,m$^2$\,nm]}, xlabel style={at={(rel axis cs:0.5,0)},below=9pt}, ylabel style={above=-2pt}, width=8cm, height=6cm, axis line on top, legend style={at={(0.65,0.9)},anchor=north west,draw=none,fill=none,font=\small}%, %legend cell align={left}, ] % RAINBOW \shade[shading=rainbow,shading angle=90,opacity=0.5] (380,\ymin) rectangle (740,\ymax); % PLANCK \addplot[blue] {planck(x,800)}; \addplot[red] {planck(x,300)}; \addplot[black] {planck(x,100)}; \addplot[dashed,thick,black] {rayleighjeans(x,100)}; \addplot[dashed,thick,red] {rayleighjeans(x,300)}; \addplot[dashed,thick,blue] {rayleighjeans(x,800)}; \addplot[dotted,thick,black] {wien(x,100)}; \addplot[dotted,thick,red] {wien(x,300)}; \addplot[dotted,thick,blue] {wien(x,800)}; % LEGENDS \addlegendentry{\SI{800}{K}} \addlegendentry{\SI{300}{K}} \addlegendentry{\SI{100}{K}} \end{loglogaxis} \end{tikzpicture} % BLACK BODY LOG-LOG - CMB redshift \begin{tikzpicture} \message{^^JCMB redshift} \def\N{60} \def\xmin{5e1} \def\xmax{2e8} \def\ymin{1e-10} \def\ymax{1e11} \begin{loglogaxis}[ every axis plot/.style={ very thick,mark=none,samples=\N,smooth}, xmin=\xmin, xmax=(1.01*\xmax), ymin=\ymin, ymax=\ymax, restrict y to domain=0.1*\ymin:\ymax, log basis y=10, axis line style=thick, tick style={black,thick}, ticklabel style={scale=0.8}, %ticks=none, max space between ticks=23, yminorticks=false, variable=x, xlabel={Wavelength $\lambda$ [nm]}, ylabel={Power $P$ [kW/sr\,m$^2$\,nm]}, xlabel style={at={(rel axis cs:0.5,0)},below=9pt}, ylabel style={above=-2pt}, width=8cm, height=6cm, axis line on top ] % BANDS % See https://tikz.net/electromagnetic_spectrum/ \fill[violet!80!black!5] (\xmin,\ymin) rectangle (380,\ymax); % ultraviolet \shade[shading=rainbow,shading angle=90,opacity=0.5] (380,\ymin) rectangle (740,\ymax); \fill[red!80!black!4] (740,\ymin) rectangle (1e6,\ymax); % infrared \fill[orange!80!black!4] (1e6,\ymin) rectangle (1e8,\ymax); % microwave \fill[green!80!black!4] (1e8,\ymin) rectangle (\xmax,\ymax); % radio \node[below=3,scale=0.7,violet!50!black] at ({\xmin*10^(log10(380/\xmin)/2)},\ymax) {UV}; \node[below=3,scale=0.7,red!50!black] at ({740*10^(log10(1e6/740)/2)},\ymax) {infrared}; \node[below=3,scale=0.7,orange!60!black] at ({1e6*10},\ymax) {microwave}; % PLANCK \addplot[domain=\xmin:1e5,red] {planck(x,3000)}; \addplot[domain=1e5:\xmax,red] {rayleighjeans(x,3000)}; % prevent rounding errors in tail \addplot[domain=2e5:\xmax,mygreen] {planck(x,2.725)}; % LABELS \node[above right=-1,red] at (1e4,{planck(1e4,3000)}) {\SI{3000}{K}}; \node[anchor=-70,mygreen] at (1e6,{planck(1e6,2.725)}) {\SI{2.725}{K}}; % ARROW \draw[->,line width=2,myred] (7e3,1e2) --++ (-42:17mm) node[pos=0.38,above,sloped,scale=0.95] {redshift} node[pos=0.38,below,sloped,scale=0.90] {$z\sim1100$}; \end{loglogaxis} \end{tikzpicture} % BLACK BODY LOG-LOG - CMB temperature variations % https://en.wikipedia.org/wiki/Cosmic_microwave_background#Relationship_to_the_Big_Bang % T ~ 2.725 K with anisotropic variations of ~ 18 uK = 0.000018 K \begin{tikzpicture} \message{^^JCMB temperature variations} \def\N{40} \def\xmin{3.2e5} \def\xmax{8e6} \def\ymin{5e-9} \def\ymax{1e-6} \begin{loglogaxis}[ every axis plot post/.append style={ very thick,mark=none,samples=\N,domain=\xmin:\xmax,smooth}, xmin=\xmin, xmax=(1.01*\xmax), ymin=\ymin, ymax=\ymax, restrict y to domain=0.1*\ymin:\ymax, log basis y=10, axis line style=thick, tick style={black,thick}, ticklabel style={scale=0.8}, xtick={5e5,1e6,2e6,5e6}, minor xtick={4e5,6e5,7e5,8e5,9e5,3e6,4e6,6e6}, log number format code/.code={ \pgfkeys{/pgf/fpu} \pgfmathparse{exp(\tick)} \pgfmathprintnumber[sci,sci zerofill,precision=0]{\pgfmathresult} \pgfkeys{/pgf/fpu=false} }, xlabel={Wavelength $\lambda$ [nm]}, ylabel={Power $P$ [kW/sr\,m$^2$\,nm]}, xlabel style={at={(rel axis cs:0.5,0)},below=9pt}, ylabel style={above=-2pt}, width=8cm, height=6cm, axis line on top, legend style={ at={(0.24,0.3)},anchor=south west,draw=none,fill=none,font=\small}, legend cell align={left}, legend image code/.code={ \draw[mark repeat=2,mark phase=2] plot coordinates {(0cm,0cm) (0.28cm,0cm) (0.56cm,0cm)};% } ] % PLANCK \addplot[red,dashed] {planck(x,2.750)}; \addplot[mygreen] {planck(x,2.725)}; \addplot[blue,dashed] {planck(x,2.700)}; \addplot[red,dashed] {planck(x,2.750)}; % draw over 2.725 % LEGENDS \addlegendentry{\SI{2.750}{K}} \addlegendentry{\SI{2.725}{K}} \addlegendentry{\SI{2.700}{K}} \end{loglogaxis} \end{tikzpicture} \end{document}
Click to download: blackbody_plots.tex • blackbody_plots.pdf
Open in Overleaf: blackbody_plots.tex.