Tikz作图教程:使用 pgfplots 宏包作堆叠图(stacked bar chart)

科研工作者常常需要绘制堆叠柱形图来呈现同一维度中不同数据的差异。
在这里插入图片描述

所谓堆叠柱形图是柱状图的变形,拥有更多维度的表现力。柱形图的最大特点就是一目了然、清晰可见,而堆叠柱形图不仅可以清晰地比较某一个维度数据中不同类型数据之间的差异,还可以比较总数的差别

今天的推文我们详细介绍一下如何用基于Tikz 的宏包 pgfplots来方便地绘制堆叠柱形图(stacked bar chart)。

准备数据

我们需要处理的数据共有六组,每组包含1月到12月共12个数据。见下表:
在这里插入图片描述
在这里插入图片描述

现在我们做6个数据文件,分别保存为cmp.dat, amp.dat, ump.dat, gmp.dat, imp.dat, xmp.dat.
在这里插入图片描述

设置

  • 导言区设置:调用pgfplots宏包及设置版本号、图片宽度
\usepackage{pgfplots}
 \pgfplotsset{width=12cm,compat=1.17}
  • 颜色设置:为了区分六组不同的数据,我们自定义六种颜色,体现在图形中就是同一个柱子将由六个不同颜色的矩形堆叠而成。
\definecolor{cmp1}{RGB}{0,129,218}
\definecolor{amp1}{RGB}{29,254,179}
\definecolor{ump1}{RGB}{62,254,94}
\definecolor{gmp1}{RGB}{194,254,0}
\definecolor{imp1}{RGB}{254,129,0}
\definecolor{xmp1}{RGB}{212,0,0}

上述颜色设置命令也放在导言区。

  • 坐标系设置:作堆叠图的关键键值为ybar stacked,,放在\begin{axis}[ybar stacked]的中括号中。

坐标系设置中另一个值得注意的是:我们的横轴用 DEC, JAN,...等文字作为刻度说明,所以需要在\begin{axis}[ybar stacked]中括号中填上一句命令:

symbolic x coords={Dec, Jan, Feb, Mar,
Apr, May, Jun, Jul, Aug, Sep, Oct, Nov},

绘图命令

绘图的关键命令只有一句:

\addplot+ [ybar,cmp1,draw=cmp1!60!black] table {CMP.dat};

\addplot+ table {CMP.dat}将我们事先准备好的数据文件CMP.dat读入并绘制柱子最底层的矩形。中括号的三个选项告诉pgfplots柱子方向是平行于y轴方向,填充颜色用我们定义好的cmp1颜色,矩形框用这个颜色和黑色按照60:40的比例混合得到的颜色。

用上述同样的命令依次导入其它五个数据文件:AMP.dat,UMP.dat,...

图例说明

制作图例的方法也很简单,只需下面的一句命令就可以了:

\legend{CMP, AMP, UMP, GMP, IMP, XMP}

我们设计了五套颜色方案,得到冷、暖各种不同色调的配色图形。

图形在文章呈现的效果如下:

在这里插入图片描述

学习Tikz作图虽然有一定难度,但是从效果来说还是值得我们花时间去学习的!

【LaTeX微信交流加群:】
1
如果你希望交流LaTeX使用或者TikZ作图或者Beamer制作幻灯片方面的问题,请先添加作者微信:niltxz,然后加入作者的LaTeX+TikZ+Beamer 交流微信群。

扫描识别下面二维码,关注Tikz绘图公众号大哉数学之为用,获取更多教程、模板!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值