I know that there are other posts here addressing this issue, but none of them really made me able to draw the picture i have added below. I'm quite new to TikZ, so I would love to get some help with the drawing! What I intended to draw was not exactly what is shown in the picture, as that is probably not possible. I only want to draw a similar photo within the boundaries of TikZ. That is, the dots on the manifold surface are unnecessary, and the surfaces themselves don't have to curve exactly like the ones in the photo.
Update: The dots are possible, and have been added!
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{pgfplots}
\begin{document}
\begin{figure}[H]
\centering
\begin{tikzpicture}
%\draw[smooth cycle,tension=3.0] plot coordinates{(1,0) (1,1) (2,2) (3,3) (6,0)} node [label=right:$M$];
% Manifold
\draw[smooth cycle, tension=0.4] plot coordinates{(2,2) (-0.5,0) (3,-2) (5,1)} node [label=$M$];
% Help lines
\draw[help lines] (-3,-6) grid (8,6);
% Subsets
\draw[smooth cycle] plot coordinates{(1,0) (1.5, 1.2) (2.5,1.3) (2.6, 0.4)} node [label={[label distance=-0.3cm, xshift=-1.8cm]:$U_i$}];
\draw[smooth cycle] plot coordinates{(4, 0) (3.7, 0.8) (3.0, 1.2) (2.5, 1.2) (2.2, 0.8) (2.3, 0.5) (2.6, 0.3) (3.5, 0.0)} node [label={[left label distance=0.8cm, xshift=.65cm]:$U_j$}];
% First Axis
\draw[thick, ->] (-3,-5) -- (0,-5) node [label=above:$\phi_i(U_i)$];
\draw[thick, ->] (-3,-5) -- (-3, -2) node [label=right:$\mathbb{R}^m$];
% Second Axis
\draw[thick, ->] (5, -5) -- (8, -5) node [label=above:$\phi_j(U_j)$];
\draw[thick, ->] (5, -5) -- (5, -2) node [label=right:$\mathbb{R}^m$];
% Functions
\path[->] (0.93, -0.09) edge [bend right] node[right] {$\phi_i$} (-1, -3);
\path[->] (-0.5, -3) edge [bend right] node [right] {$\phi^{-1}_i$} (1.093, -0.09);
% Sets in R^m
\draw[smooth cycle] plot coordinates{(-2, -4.5) (-2, -3.2) (-0.8, -3.2) (-0.8, -4.5)};
\draw[smooth cycle] plot coordinates{(7, -4.5) (7, -3.2) (5.8, -3.2) (5.8, -4.5)};
% Functions
\path[->] (6.0, -3.0) edge [bend left] node[left] {$\phi^{-1}_j$} (3.8, -0.09);
\path[->] (4.2, 0) edge [bend left] node[left] {$\phi_j$} (6.5, -3.0);
\end{tikzpicture}
\end{figure}
\end{document}
which produces
I don't know how to shade areas of the subsets with a grid as in the photo or how to prohibit the arrows etc. from intersecting each other.
pgfplots
, maybe?