I need some help in tikz. I don't know how to draw a curved plot like this red one on the picture, I have already prepared the axis, dashed line and these arrows. enter image description here

There is my code:

   axis lines = left,
   xmin=0, xmax=10,
   ymin=0, ymax=10,
    xtick = \empty, ytick = {0},
    clip = false,
    \node [below] at (current axis.right of origin) {$t$};
    \node [left] at (current axis.above origin) {$E$};

    \addplot[color = grey!60!white, dashed, thick] coordinates {(0,4) (8,4)};

    \draw[-{Triangle}, grey!80!white, opacity = 0.8] (1.5,0.1) to (1.5, 3.9);
    \draw[-{Triangle}, grey!80!white, opacity = 0.8] (7,0.1) to (7, 1.9);
    \draw[-{Triangle}, grey!80!white, opacity = 0.8] (4.5,4.1) to (4.5, 6.9);
    \node [right] at (1.5,2) {$E_s$};
    \node [right] at (7,1) {$E_p$};
    \node [right] at (4.5,5.5) {$E_a$};

Can someone help me, please?


1 Answer 1


Assuming the red curve is just representative and not a specific function, this is probably easier with just straightforward TikZ commands.

enter image description here

Use \coordinate to name specific points, then \draw to draw the axes, grid and red curve, as well as the arrows. Use nodes to place labels on the arrows.

The only complicated part is the brace with 𝛥H. You need the decorations.pathreplacing library for that.

If you want more control over the curve, you can read about Bézier curves in the TikZ manual (sections 2.4 or 14.3).


\usetikzlibrary{arrows.meta, decorations.pathreplacing}

\begin{tikzpicture}[>=Straight Barb]
\draw[gray!30] (-.5,-.2) grid (8.8,6.7);
\draw[very thick, <->] (0,6.5)node[below left=2pt]{$E$} -- (0,0) -- (8.5,0);
\coordinate (A) at (0,2.5);
\coordinate (B) at (1.5,2.5); \coordinate (B0) at (1.5,0);
\coordinate (C) at (3.5, 4.5); \coordinate (C0) at (3.5, 2.5);
\coordinate (D) at (5.8,1.2); \coordinate (D0) at (5.8,0);
\draw[thick, red, looseness=.7] (A) -- (B) to[out=0, in=180] (C) to[out=0, in=180] (D) --++ (2,0);
\draw[dashed] (B) --++ (6.5,0);
\draw[thick, gray, <->] (B) --node[right]{$E_s$} (B0);
\draw[thick, gray, <->] (C) --node[right]{$E_a$} (C0);
\draw[thick, gray, <->] (D) --node[right]{$E_p$} (D0);
\draw[decorate, decoration=brace, thick] (8.1,2.5)--node[right]{$\Delta H$}(8.1,1.2);


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .