如何用 Tikz 绘制桑基图?

如何用 Tikz 绘制桑基图?

我正在尝试制作桑基图。我知道使用 Tikz 图片可以做到这一点,但我不明白其中的窍门。我正在尝试制作类似这样的图: 柴油发动机内燃机损失 有谁用过这个包吗?

答案1

理解您参考问题中接受的答案并不容易,但是,通过一些简单的计算,我们可以非常直接地得出如下结论。

\documentclass[tikz]{standalone}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}
\draw[{Triangle Cap[reversed]}-,line width=1cm] (0,0) -- (1.5,0);
\draw[-{Triangle[width=.35cm*1.5,length=.35cm]},line width=.35cm] (1.5,.5) -- ++ (0,-2);
\draw[-{Triangle[width=.3cm*1.5,length=.3cm]},line width=.3cm] (2.5,.5) -- ++ (0,-2);
\draw[-{Triangle[width=.14cm*1.5,length=.14cm]},line width=.14cm] (3.5,.5) -- ++ (0,-2);
\draw[-{Triangle[width=.21cm*1.5,length=.21cm]},line width=.21cm] (3.5,.395) -- ++ (2,0);
\draw[line width=.65cm] (1.5,.175) -- (2.5,.175);
\draw[line width=.35cm] (2.5,.325) -- (3.5,.325);
\end{tikzpicture}
\end{document}

在此处输入图片描述

您现在需要做的是添加文本、更改颜色并重新缩放图片以使其适合您的文档。希望您能做到!

答案2

尽管我只有爪子,但我认为我的爪子书写的文字比你的更易读。

\documentclass[tikz,border=3.14mm]{standalone}
\newcounter{ahead}
\begin{document}
\begin{tikzpicture}[ahead/.style={/utils/exec=\stepcounter{ahead},
insert path={ -- ++ (0,#1/2) -- ++(#1,-#1) coordinate(ahead-\number\value{ahead}) --
++ (-#1,-#1) -- ++(0,#1/2) }},nodes={align=center}]
 \draw (0,0) coordinate(start) -- ++(0.75,0.75) -- ++ (-0.75,0.75) 
 node[below left]{100\%\\ Diesel}
 -- ++(10,0) [ahead=1] -| ++(-3,-3) coordinate(aux)  [rotate=-90] 
 (aux)[ahead=0.6,rounded corners=4pt] |-++(-2.5,0) [sharp corners] 
 |- ++(2,-1.5) [ahead=0.8,rounded corners=4pt]
 |-++(-2,0) [sharp corners]  |- ++(2,-1.5) [ahead=0.8,rounded corners=8pt] -| (start);
 \path (ahead-1) node[right] {Tank in total\\ 21\%}
 (ahead-2) node[below right] {unreadable\\ xx\%}
 (ahead-3) node[below] {unreadable\\ xx\%}
 (ahead-4) node[below] {unreadable\\ xx\%};
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容