# How to draw these (indifference) curves in TikZ

I would like to reproduce the following plots but I have no idea how to do this. Does anyone of you know how to draw these curves in PGF/TikZ (or in any other suited way)?

• What do you need help with? Drawing arrows? Dashed lines? Black dots? Labels to certain points? Writing sub and superscripts in math? We prefer particular questions rather than do this for me. What have you got so far? Jul 22, 2015 at 13:04
• Salim provided good examples. When I do something like this, I tend to use the original image as a base layer and then sketch on top to make it roughly match. All done in tikz Jul 22, 2015 at 13:19
• @ manuel - i didn't have any MWE to provide you with so my question was how can i produce these graphs in general. that is to say, if i had any particuar question i would have posted one. Jul 22, 2015 at 13:36

Here is a pgfplots solution. Based on salim bou's answer.

# Plot 1

\documentclass[margin=10pt]{standalone}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis x line=bottom,
axis y line=left,
xmin=0, xmax=10,
ymin=0, ymax=10,
xlabel={Dimension 1},
ylabel={Dimension 2},
ytick=\empty,
xtick={0},
]
\draw (axis cs:2.2,9.5) to [bend right=30] coordinate[pos=0.2] (l_i) (axis cs:8,.5);
\fill (l_i) circle (2.2pt) node[above right] {$\ell_i$};

\draw (axis cs:.5,6) to [bend right=10] coordinate[pos=0.8] (dl_j) (axis cs:9,3.5);
\fill (dl_j) circle (2.2pt) node[above right] {$\ell_j'$};

\fill (axis cs:1.5,6) circle (2.2pt) node[above right] {$\ell_j$};
\fill (axis cs:6,2.5) circle (2.2pt) node[above right] {$\ell_i'$};
\end{axis}
\end{tikzpicture}

\end{document}


# Plot 2

\documentclass[margin=10pt]{standalone}
\usepackage{pgfplots}
\usepackage{amsmath}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis x line=bottom,
axis y line=left,
xmin=0, xmax=10,
ymin=0, ymax=10,
xlabel={income},
ylabel={health},
ytick=\empty,
extra y ticks={8},
extra y tick style={align=center, font=\scriptsize},
extra y tick labels={normal\\health},
xtick={0},
extra x ticks={1,3},
extra x tick labels={$\text{y}_\text{A}^*$,$\text{y}_\text{B}^*$},
]

\draw (axis cs:1,8) to [bend right=10]
coordinate[pos=0] (A') coordinate[pos=0.7] (A) (axis cs:8,3.5);
\fill (A') circle (2.2pt) node[above right] {A'};
\fill (A) circle (2.2pt) node[above right] {A};

\draw (axis cs:3,8) to [bend right=30]
coordinate[pos=0] (B') coordinate[pos=0.17] (B) coordinate[pos=0.6] (B'') (axis cs:8,1.5);
\fill (B') circle (2.2pt) node[above right] {B'};
\fill (B) circle (2.2pt) node[above right] {B};
\fill (B'') circle (2.2pt) node[above right] {B''};

\draw[dashed, thin] (axis cs:1,8) -- (axis cs:1,0);
\draw[dashed, thin] (axis cs:3,8) -- (axis cs:3,0);
\end{axis}
\end{tikzpicture}

\end{document}

• many thanks for providing me with pgfplots solution. really appreciate your help. Jul 23, 2015 at 7:54
• @FranzGötzkopf You are welcome. Take a look at the pgfplots manual the axis, labels, ... are highly customizable. Jul 23, 2015 at 8:02

With tikz

1. ## First plot

\documentclass[margin=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}

\begin{document}
\begin{tikzpicture}[>=Triangle,thick]
\draw[->](0,0)node[below]{$0$}--(6,0)node[below left]{Dimention1};
\draw[->](0,0)--(0,6)node[below left]{Dimention2};

\draw (1.2,5.3) to [bend right=30]  coordinate[pos=0.2] (l_i)(5,0.5);
\fill (l_i)circle(2.2pt)node[above right]{$\ell_i$};

\draw (5.5,2) to [bend left=10]  coordinate[pos=0.2] (l'_j)(0.5,3.5);
\fill (l'_j)circle(2.2pt)node[above right]{$\ell'_j$};

\fill (1,3.5)circle(2.2pt)coordinate(l_j)node[above right]{$\ell_j$};
\fill (3.6,1.5)circle(2.2pt)coordinate(l'_i)node[above right]{$\ell'_i$};
\end{tikzpicture}

\end{document}

2. ## Second plot

\documentclass[margin=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}

\begin{document}
\begin{tikzpicture}[>=Triangle,thick]
\draw[->](0,0)node[below]{$0$}--(6,0)node[below left]{income};
\draw[->](0,0)--(0,6)node[below left]{heath};
\draw(0,5)node [left,text width=1cm]{normal health}--(5.5,5);

\draw (0.8,5)coordinate(A') to [bend right=20] coordinate[pos=0.85] (A)  (5.5,2);

\draw (2,5)coordinate(B') to [bend right=20] coordinate[pos=0.2] (B) coordinate[pos=0.7] (B'')  (5.5,1);

\foreach \i in{A,B,A',B'}{\fill (\i)circle (2.2pt)node[above right]{$\i$};}
\fill (B'')circle (2.2pt)node[below left]{$B''$};

\foreach \i/\j in{A'/y_1^*,B'/y_2^*}{\draw[dashed](\i)--+(0,-5)node[below]{$\j$};}

\end{tikzpicture}

\end{document}

• @ salim bou - many thanks for assistance. that's exactly what i have been looking for. Jul 22, 2015 at 13:27
• $\ell$'s are easier to distinguish from $1$'s than $l$'s. They're also in the original graphs.
– JPi
Jul 22, 2015 at 15:25