I would like to trace this figure, but I have difficulties in controlling the placement of arrows and numerical flows underneath the arrows.
The "sedimentary rock" node has to be split in two. Can you support some help. Thanks in advance.
\documentclass[tikz]{minimal}
\usepackage{tikz}
\usetikzlibrary{shapes}
\begin{document}
\begin{tikzpicture}
\node[rectangle,fill=red!70,text width=4cm,anchor=base] (atmosfera) at (5cm, 8cm) {Atmosphere\\ (carbon dioxide)};
\node[rectangle,fill=red!70,text width=4cm,anchor=base] (biosfera) at (0cm, 2.5cm) {Biosphere\\ (carbohydrates)};
\node[rectangle,fill=red!70,text width=4cm,anchor=base] (oceano) at (8cm, 0cm) {Ocean\\(bicarbonate ions)\\ $1.3\times10^{20}$};
\node[rectangle,fill=red!70,text width=4cm,anchor=base] (rochas) at (0cm, 0cm) {Sedimentary rocks};
\draw[->,out=-90,in=0,looseness=1, draw=blue] (atmosfera.south west) to node[midway, above, sloped] {Photosynthesis} (biosfera.east) ;
\draw[->,out=90,in=180,looseness=1, draw=blue] (biosfera.north) to node[midway, above, sloped] {Respiration and decay\\$10^{17}$} (atmosfera.west) ;
\draw[->,out=-90,in=90,looseness=1, draw=blue] (biosfera.west) to node[midway, above, sloped] {Burial\\ $3 \times 10^{14}$} (rochas.west) ;
\draw[->,out=90,in=-90,looseness=1, draw=blue] (rochas.north) to node[midway, above, sloped] {Vulcanism and weathering} (atmosfera.south) ;
\draw[->,out=90,in=120,looseness=1, draw=blue] (rochas.south east) to node[midway, above, sloped] {$10^{15}$} (oceano.north west) ;
\draw[->,out=.120,in=-60,looseness=1, draw=blue] (oceano.south) to node[midway, above, sloped] {Sedimentation} (rochas.west) ;
\draw[->,out=-90,in=90,looseness=1, draw=blue] (atmosfera.south) to node[midway, above, sloped] {Solution} (oceano.north) ;
\draw[->,out=90,in=0,looseness=1, draw=blue] (oceano.east) to node[midway, above, sloped] {Evaporation} (atmosfera.east) ;
\end{tikzpicture}
\end{document}
Best Answer
In the following solution I address both problems: the split node and the text along the curved paths.
Some remarks:
I defined a
mynode
style for all the nodes with colored background.I used the
positioning
library to place the nodesThe "split" node is simply a wider node called
rochas
with themynode
style; two\parboxes
were used to place the text on each part of the node; a dashed line fromrochas.north
torochas.south
produces the separation. Finally, the text "Sedimentary rocks" is written using an auxiliary node (to prevent the dashed line from overwriting the text).The text along the curved paths was written using the
text along path decoration
from thedecorations.text
library (See Section 30.6 Text Decorations of thepgf
manual). I used the style defined by percusse in his answer to Curved text (on multiple lines) within curved arrow using tikz.Notice that placing mathematical expressions using this decoration requires some extra precautions; even a simple expression such as
$3\times 10^{14}$
has to be written as$3{\times} 10{^{14}}${}
; in particular, the pair of final braces is required (try seeing what happens if you suppress it).