So I have tried various ways, but I am still new to TikZ and have only produced a few TikZ graphics, so forgive me if I've done some stupid mistakes.
I have a LaTeX project I need to hand in, and I thought that I might give TikZ a try to replicate one of the figures we got provided with in our script for our experiment. (I thought that it might look nicer to have everything matching in the same document rather than different figure styles.)
This is what I am trying to replicate with TikZ:
I have managed to replicate the right part (and other figures, see below), but I can not ge the parabola to smoothing join the join on the right.
The hobby tikzlibrary looked promissing, but did not quite get me to where I wanted to.
My code sofar:
\documentclass[border=5mm,tikz]{standalone}
\usetikzlibrary{positioning,intersections,calc,hobby}
\begin{document}
\begin{tikzpicture}
\bgroup
\sffamily
%%%%%%%%%%%%%%%%%%%%%%%%%
% Styles
%%%%%%%%%%%%%%%%%%%%%%%%%
\tikzset{
axisstyle/.style={
very thick,
->,
> = stealth
},
relaxed-state/.style={
black,
very thick
},
abs-em/.style={
very thick,
->,
> = stealth,
black
},
excited-lines/.style={
very thick,
},
energy-level/.style={
very thick,
black,
dashed
}
}
%%%%%%%%%%%%%%%%%%%%%%%%%
% Grafik
%%%%%%%%%%%%%%%%%%%%%%%%%
% Nodes
\node (left-S0) at (5,2) {};
\node (left-S1) at (5,6) {};
% \node (parabola-min) at ($ (left-S1)+(-1.5,-0.5) $) {};
\node (S0-parab-min) at ($ (left-S0)+(-1.5,-1) $) {};
\node (S0-parab-max) at ($ (left-S0)+(-4,2) $) {};
% Achse
\draw[axisstyle] (1.5,0) -- node[below] (axis label) {Intermolekularer Abstand $R$} (10,0);
% Relaxed states S0 and S1
\draw[relaxed-state] (left-S0.center) -- node[below right] (S0) {\color{green} B\,$+$\,B\hphantom{$^*$}} +(4,0);
\draw[relaxed-state] (left-S1.center) -- node[above right] (S1) {\color{red} B\,$+$\,$\mathsf{B}^*$} +(4,0);
% Abs., Em., Monomeren
% Version 1: Node in arrows
\draw[abs-em] (S0.north west) -- node[fill=white] (abs) {Abs.} (S1.south west);
\draw[abs-em] (S1.south east) -- node[fill=white] (em) {Em.} (S0.north east);
\node[above=of abs.west,fill=white,yshift=-6mm,anchor=west] (Monomeren) {Monomeren};
% Version 2: Node next to arrwos
% \draw[abs-em] (S0.north west) -- node[fill=white,left] (abs) {Abs.} (S1.south west);
% \draw[abs-em] (S1.south east) -- node[fill=white,right] (em) {Em.} (S0.north east);
% parabola form of energy levels
%%%%%%% my try with the hobby library
% notes for the important parts of the figure:
% the minimum of the parabolas must not be at the same x value
% the upper parabola (S1 parabola) has to be "tighter" than the lower (S0 parabola)
% energy levels have to be drawn
% \draw[excited-lines] (left-S0.center) to[out=180] (S0-parab-min) to (S0-parab-max);
% \draw[excited-lines] (left-S0.center) to[curve through={($ (left-S0.west)+(-0.5,-0.5) $)}] (S0-parab-min);
\draw[excited-lines] (left-S0.center) to[curve through={($ (left-S0.west)+(-1,-0.5) $) .. (S0-parab-min)}] ++(-5,2);
\egroup
\end{tikzpicture}
\end{document}