The atmospheric pressure variation as a function of altitude.
Edit and compile if you like:
% Author: Izaak Neutelings (November 2020) \documentclass[border=3pt,tikz]{standalone} \usepackage{siunitx} %\usepackage{physics} \usepackage{tikz} %\usepackage[outline]{contour} % glow around text \usetikzlibrary{patterns,decorations.pathmorphing} \usetikzlibrary{arrows.meta} \tikzset{>=latex} %\contourlength{1.1pt} \colorlet{mydarkblue}{blue!50!black} \colorlet{myred}{red!65!black} \tikzstyle{force}=[->,myred,very thick,line cap=round] \tikzstyle{vvec}=[->,very thick,vcol,line cap=round] \def\tick#1#2{\draw[thick] (#1)++(#2:0.1) --++ (#2-180:0.2)} \begin{document} % ATMOSPHERIC PRESSURE vs. ALTITUDE \begin{tikzpicture} \def\xmax{4.9} \def\ymax{2.9} \def\Nx{5} \def\Ny{4} \coordinate (M) at (0.95*\xmax*3.37/2/\Nx,0.9*\ymax*0.88/\Ny); % mount Everest \coordinate (S) at (0.95*\xmax*10.13/2/\Nx,0); % sea level % SKY + MOUNTAIN \fill[top color=blue!80!black!20,bottom color=blue!80!black!5] (0,0) rectangle (\xmax,0.9/\Ny*\ymax); \fill[top color=blue!50!black!50,bottom color=blue!80!black!20] (0,0.9/\Ny*\ymax) rectangle (\xmax,\ymax); \begin{scope} \clip (0.2*\xmax,0) --++ (0.07*\xmax,0.14*\ymax) --++ (0.02*\xmax,-0.03*\ymax) -- (M) -- (0.4*\xmax,0); \fill[white] (0.1*\xmax,0) rectangle (0.4*\xmax,0.5*\ymax); \fill[top color=white,bottom color=green!60!black!90,middle color=brown!80!black!80] (0.1*\xmax,0) rectangle (0.4*\xmax,0.1*\ymax); \end{scope} \draw[thin] (0.2*\xmax,0) --++ (0.07*\xmax,0.14*\ymax) --++ (0.02*\xmax,-0.03*\ymax) -- (M) -- (0.4*\xmax,0); % AXES \draw[->,line width=1] (-0.05*\xmax,0) -- (1.08*\xmax,0) node[right=8,below left=10] {Pressure $P_\mathrm{atm}$ [hPa]}; \draw[->,line width=1] (0,-0.05*\xmax) -- (0,1.10*\ymax) node[below=8,above left=13,rotate=90] {Altitude $h$ [km]}; % LINE \draw[mydarkblue,very thick] (0.02,0.95*\ymax) to[out=-90,in=150,looseness=0.8] (M) to[out=-30,in=178,looseness=0.8] (S); \fill[green!70!black] (M) circle(0.02*\ymax) node[green!50!black,below=1.7,left=0.8,scale=0.85] {Everest}; % TICKS \foreach \i [evaluate={\y=0.9*\ymax*\i/\Ny; \h=int(10*\i)}] in {1,...,\Ny}{ \tick{0,\y}{0} node[left=-1,scale=0.9] {\h}; } \foreach \i [evaluate={\x=0.95*\xmax*\i/\Nx; \p=int(200*\i)}] in {1,...,\Nx}{ \tick{\x,0}{90} node[below=-1,scale=0.9] {\p}; } \draw[dashed] (0,0.9/\Ny*\ymax) --++ (\xmax,0) node[left=7,below left=-1] {troposphere} node[left=7,above left=-1] {stratosphere}; \draw[dashed] (S) --++ (0,\ymax) % --++ (0,0.05*\ymax) (S)++(0,0.2*\ymax) --++ (0,0.8*\ymax) node[right=15,above left=-1,scale=0.9] {\SI{1013.25}{hPa}}; \end{tikzpicture} % ATMOSPHERIC PRESSURE vs. ALTITUDE - gas molecules % Inverse transform sampling: % pdf f(x) = a*exp(-ax) => cdf F(x) = 1-exp(-ax) % => F^{-1}(x) = -ln(1-x)/a \begin{tikzpicture} \def\xmax{1.6} \def\ymax{2.9} \def\a{6} % exponential rate parameter \def\N{1200} % number of particles \def\Ny{4} \fill[top color=blue!80!black!20,bottom color=blue!80!black!5] (0,0) rectangle (\xmax,0.9/\Ny*\ymax); \fill[top color=blue!50!black!50,bottom color=blue!80!black!20] (0,0.9/\Ny*\ymax) rectangle (\xmax,\ymax); \foreach \i [evaluate={\x=\xmax*(rand+1)/2;\y=0.008*\ymax+\ymax*min(0.98,-ln(1-(rand+1)/2)/\a);}] in {1,...,\N}{ \fill[red!70!black] (\x,\y) circle(0.01); } \draw[thick,black!90!blue] (0,\ymax) -- (0,0) -- (\xmax,0) -- (\xmax,\ymax); \end{tikzpicture} \end{document}
Click to download: fluid_dynamics_pressure_altitude.tex • fluid_dynamics_pressure_altitude.pdf
Open in Overleaf: fluid_dynamics_pressure_altitude.tex