Edit and compile if you like:
% Author: Izaak Neutelings (March, 2017)
\documentclass[border=3pt,tikz]{standalone} %[dvipsnames]
\usepackage{amsmath} % for \dfrac
\usepackage{siunitx,physics}
\usepackage{tikz}
\tikzset{>=latex} % for LaTeX arrow head
\usepackage{pgfplots} % for the axis environment
%\usepackage[outline]{contour} % halo around text
%\contourlength{1.2pt}
\usepackage{xcolor}
\colorlet{mygreen}{green!60!black}
\colorlet{myblue}{blue!70!black}
\colorlet{myred}{red!70!black}
\tikzstyle{rline}=[myred,thick]
\tikzstyle{bline}=[myblue,thick]
\tikzstyle{gline}=[mygreen,thick]
\pgfplotsset{compat=1.13} % TikZ coordinates <-> axes coordinates
%\pgfplotsset{compat=1.17}
\colorlet{mydarkblue}{blue!30!black}
\def\N{50}
% H2: 4u/2k = 4*1.66*10^(-27)/(2*1.38*10^(-23)) = 0.00024
% O2: 32u/2k = 32*1.66*10^(-27)/(2*1.38*10^(-23)) = 0.00192
% 4/sqrt(pi)
%\def\k{0.00024}
\pgfmathdeclarefunction{maxwell}{2}{%
\pgfmathparse{4/sqrt(pi)*(\k/#2)^(3/2)*(#1^2)*exp(-\k*(#1^2)/#2)}%
}
\def\maxwell#1#2{4/sqrt(pi)*(\k/#2)^(3/2)*((\xscale*#1)^2)*exp(-((\xscale*#1)^2)*(\k/#2))}
%\def\vmax#1{sqrt(#1/\k)/\xscale}
\def\tick#1#2{\draw[thick] (#1) ++ (#2:0.03*\ymax) --++ (#2-180:0.06*\ymax)}
\begin{document}
% MAXWELL-BOLTZMANN different temperatures
\begin{tikzpicture}
\def\xmax{6.0}
\def\ymax{4.0}
\def\k{4500} % k = m/2k
\def\xscale{0.14}
\def\vn{2.6}
\def\vmax{sqrt(300/\k)/\xscale}
\def\vrms{sqrt(300/(2*\k/3))/\xscale}
\def\vave{2*\vmax/sqrt(pi)}
\coordinate (O) at (0,0);
\coordinate (X) at (\xmax,0);
\coordinate (Y) at (0,\ymax);
% AXIS
\draw[<->,thick]
(Y) node[above left,rotate=90] {Probability} -- (0,0) -- (X) node[right=4,below] {$v$ [\si{m/s}]};
\foreach %\x [evaluate={\c=sqrt(\k/0.00096); \v=(round(\x*\c/\xscale))}] in {1,...,3}{
\i [evaluate={\v=int(\i*200);}] in {0,...,5}{
\pgfmathsetmacro\x{\v*sqrt(0.00192)/\xscale/sqrt(\k))} % higher precision
\tick{\x,0}{90} node[below,scale=0.8] {\v};
}
% LABELS
\node[blue!50!black,above right=-1,scale=0.9] at (\vn,{\maxwell{\vn}{300}}) {$T=\SI{300}{K}$}; %f(x)
\draw[myblue,dashed,thin]
({\vmax},0) coordinate (VM) --++ (0,{1.04*\maxwell{\vmax}{300}})
node[myblue,left=1,above left=-4,scale=0.9] {$v_\text{p}$};
\draw[myred,dashed,thin]
({\vave},0) coordinate (VA) --++ (0,{1.04*\maxwell{\vmax}{300}})
node[myred,right=1,above=-2,scale=0.9] {$\expval{v}$};
\draw[mygreen,dashed,thin]
({\vrms},0) coordinate (VR) --++ (0,{1.04*\maxwell{\vmax}{300}})
node[mygreen,above=2,below right=0,scale=0.9] {$v_\text{rms}$};
%\tick{VM}{90}; %node[myblue,right=1,below left=0,scale=0.85] {$v_\text{p}$};
%\tick{VA}{90}; %node[myred,left=1,below=-2,scale=0.85] {$\expval{v}$};
%\tick{VR}{90}; %node[mygreen,below right=0,scale=0.85] {$v_\text{rms}$};
% PLOT
\draw[blue!50!black,thick,samples=100,smooth,variable=\x,domain=0.01:0.94*\xmax]
plot(\x,{\maxwell{\x}{300}});
\end{tikzpicture}
% MAXWELL-BOLTZMANN different temperatures
\begin{tikzpicture}
\def\xmax{6.0}
\def\ymax{4.0}
\def\k{2000}
\def\xscale{0.25}
\def\vb{1.1}
\def\vg{1.6}
\def\vr{2.4}
\coordinate (O) at (0,0);
\coordinate (X) at (\xmax,0);
\coordinate (Y) at (0,\ymax);
% AXIS
\draw[<->,thick]
(Y) node[above left,rotate=90] {Probability} -- (0,0) -- (X) node[below] {$v$ [\si{m/s}]};
\foreach \i [evaluate={\v=int(\i*200);}] in {0,...,6}{
\pgfmathsetmacro\x{\v*sqrt(0.00192)/\xscale/sqrt(\k))} % higher precision
\tick{\x,0}{90} node[below,scale=0.8] {\v};
}
% LABELS
\node[bline,above right=-1,scale=0.95] at (\vb,{\maxwell{\vb}{100}}) {$T_1=\SI{100}{K}$};
\node[gline,above right=-2,scale=0.95] at (\vg,{\maxwell{\vg}{300}}) {$T_2=\SI{300}{K}$};
\node[rline,above right=-2,scale=0.95] at (\vr,{\maxwell{\vr}{500}}) {$T_3=\SI{500}{K}$};
% PLOT
\draw[bline,samples=100,smooth,variable=\x,domain=0.01:0.94*\xmax]
plot(\x,{\maxwell{\x}{100}});
\draw[gline,samples=100,smooth,variable=\x,domain=0.01:0.94*\xmax]
plot(\x,{\maxwell{\x}{300}});
\draw[rline,samples=100,smooth,variable=\x,domain=0.01:0.94*\xmax]
plot(\x,{\maxwell{\x}{500}});
\end{tikzpicture}
%% MAXWELL-BOLTZMANN with axes
%\begin{tikzpicture}
%
% \def\N{40};
% \def\k{0.00024}
% \def\vmax{sqrt(300/\k)};
% \def\xmin{0};
% \def\xmax{4e3};
% \def\ymax{1.15*maxwell(\vmax,300)};
%
% \begin{axis}[every axis plot post/.append style={
% mark=none,domain=0:\xmax,samples=\N,smooth},
% xmin={-0.1*\xmax}, xmax={1.05*\xmax},
% ymin={-0.1*\ymax}, ymax={\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,
% %ticks=none,
% tick scale binop=\times,
% %every y tick scale label/.style={at={(rel axis cs:0,1)},anchor=south}
% xlabel={$v$ [m/s]},
% ylabel={probability},
% xlabel style={at={(rel axis cs:-0.1,0.5)},above=50pt,font=\small},
% ylabel style={at={(rel axis cs:-0.1,0.5)},rotate=90},
% every axis x label/.style={at={(current axis.right of origin)},anchor=north},
% width=0.7*\textwidth, height=0.55*\textwidth,
% %clip=false
% ]
%
% % PLOTS
% \addplot[blue,thick] {maxwell(x,300)};
% \addplot[blue,thick] {maxwell(x,400)};
%
% % LINES
% \addplot[mydarkblue,dashed,thick]
% coordinates {({\vmax},{.95*\ymax}) ({\vmax},{0})} %-.05*(\ymax)
% node[mydarkblue,below=-2pt] {$v_\text{max}$};
%
% \end{axis}
%\end{tikzpicture}
\end{document}
Click to download: maxwell-boltzmann.tex • maxwell-boltzmann.pdf
Open in Overleaf: maxwell-boltzmann.tex

