# Drawing Smooth Hyperbolic Curves in TikZ

I am trying to draw the following picture with TikZ. However it doesn't seem possible to get the correct smoothness like in the picture.

Can anyone tell me how to achieve it. What I have tried so far is using parabola function and smooth plot.

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}

\draw [<->,thick] (0,5) node (yaxis) [above, text width=3.5cm,align=center] {$s_1$}
|- (7,0) node (xaxis) [right] {$s_2$};

\coordinate (A) at (2.5,4.7);
\coordinate (B) at (2.80,2.0);
\coordinate (C) at (3.75,1.50);
\coordinate (D) at (6.7,0.75);

%\draw[thick] plot [smooth] coordinates{(A) (B) (C) (D)};
% \draw (2.5,4.7) parabola bend (2  .8,2) (6.7,0.75);
\draw  (6.7,1.00) parabola bend (3.5,0.95) (2.5,4.7) ;

\node [yshift=0.25cm] at (A) {$T = C$};
\node [xshift=0.65cm] at (D) {$c_1/\psi$};

\draw[dotted] (0,4.5) node[xshift=-8pt] {$n_1$} -- (6.5,4.5);
\draw[dotted] (6.5,4.5) -- (6.5,0) node[yshift=-8pt] {$n_2$};

%\draw[dotted] (0,0.9) node[xshift=-8pt] {$1$} -- (4.5,0.9);
\draw[dotted] (1.5,4.5) -- (1.5,0) node[yshift=-8pt] {$I_1/\psi$};

\node[text width=2.5cm,align=center] at (3,0.75) {Transfer domain \\ $T > C$};
\node[text width=4cm,align=center] at (4.75,3.5) {Computation domain \\ $T < C$};

\end{tikzpicture}
\end{document}

• Parabolic or hyperbolic ? – Tarass Jun 8 '14 at 18:31
• you are right, its hyperbolic curve. – knowledge_seeker Jun 10 '14 at 9:59

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}

\draw [<->,thick] (0,5) node (yaxis) [above, text width=3.5cm,align=center] {$s_1$}
|- (7,0) node (xaxis) [right] {$s_2$};

\coordinate (A) at (2.5,4.7);
\coordinate (B) at (2.80,2.0);
\coordinate (C) at (3.75,1.50);
\coordinate (D) at (6.7,0.75);

%\draw[thick] plot [smooth] coordinates{(A) (B) (C) (D)};
% \draw (2.5,4.7) parabola bend (2  .8,2) (6.7,0.75);
\draw (6.7,1.00) .. controls (3,1.7) and (2.4,1.7) .. (2.5,4.7) ;

\node [yshift=0.25cm] at (A) {$T = C$};
\node [xshift=0.65cm] at (D) {$c_1/\psi$};

\draw[dotted] (0,4.5) node[xshift=-8pt] {$n_1$} -- (6.5,4.5);
\draw[dotted] (6.5,4.5) -- (6.5,0) node[yshift=-8pt] {$n_2$};

%\draw[dotted] (0,0.9) node[xshift=-8pt] {$1$} -- (4.5,0.9);
\draw[dotted] (1.5,4.5) -- (1.5,0) node[yshift=-8pt] {$I_1/\psi$};

\node[text width=2.5cm,align=center] at (3,0.75) {Transfer domain \\ $T > C$};
\node[text width=4cm,align=center] at (4.75,3.5) {Computation domain \\ $T < C$};

\end{tikzpicture}
\end{document}


• It could be nice to explain what the controls point do, eg plotting Bézier curves. – Trefex Jun 8 '14 at 16:33

Today this image one can draw by TikZ (v 3.0.1a) on the following (relatively concise) way:

\documentclass[tikz, margin=3mm]{standalone}
\usetikzlibrary{positioning}

\begin{document}
\begin{tikzpicture}[
node distance = 3mm and 5mm,
box/.style = {inner sep=0pt, text width=22mm,align=flush center}
]
% axis
\draw [->,thick] (-0.1,0) -- + (7,0) node[right] {$s_2$};
\draw [->,thick] (0,-0.1) -- + (0,6) node[above] {$s_1$};
%
\coordinate[label=left:$n_1$]       (A) at (0.0,4.5);
\coordinate[label=below:$I_1/\psi$] (B) at (0.9,0.0);
\coordinate[label=below:$n_2$]      (C) at (6.2,0.0);
% hyperbola with nodes on the both ends
\node[above,orange] at (1.75,5.0) {$T = C$};
\draw[ultra thick,orange] plot[domain=.25:5,smooth]   (1.5+\x,1+1/\x)
node[right] {$c_1/\psi$};
% dotted lines
\draw[dotted] (A) -| (B)    (A -| B) -| (C);
%
\node[box,above right=of B]     {Transfer domain\\ $T > C$};
\node[box,below left=of A -| C] {Computation domain\\ $T < C$};
\end{tikzpicture}
\end{document}


For hyperbola is selected function 1/x on domain 0.25:5 and shifted for (1.5,1). For fancy look the hyperbola is orange colored :-) :