今天我们来介绍使用基于Tikzpgfplots宏包绘制堆叠图、折线图和误差线的组合图形。

作图分析

本图的难点在于:

  • 堆叠柱形图属于 ybar stacked类型的图,而折线图和误差线作图是另一种类型的图,当坐标系设置中有ybar stacked,键值时,pgfplots会将折线图的数据化成矩形堆叠上去,而不是画成线型图。

  • 解决方案是分别在两个坐标系中作图,pgfplots会将后面的图叠加到先作的图上,这就是“图层”的机制。两个坐标系的设置也是一个难点,它们的设置要相同,这样才不会出现坐标系不重合的情形。

  • 堆叠图的画法在前一篇推文中,已经做了详细介绍,下面只讲误差线的画法。

折线图+误差线的画法

首先解释一些关于误差的概念:
我们通过实验得到的观察值(x,y)(x,y)(x,y)和真值(x′,y′)(x^\prime,y^\prime)(x′,y′)之间往往有有一个差值,我们常常给出一个误差范围来描述观察值的精确程度。观测值与真值之差的绝对值的上界叫做绝对误差,记作ϵ\epsilonϵ.
∣x−x′∣≤ϵx,∣y−y∣≤ϵy|x-x^\prime|\le \epsilon_x, |y-y|\le \epsilon_y ∣x−x′∣≤ϵx​,∣y−y∣≤ϵy​

绝对误差占真值的绝对值的比率的上界则称为相对误差:

∣x−x′∣∣x′∣ϵx,∣y−y′∣∣y′∣≤ϵy\frac{|x-x^\prime|}{|x^\prime|}\epsilon_x, \frac{|y-y^\prime|}{|y^\prime|}\le \epsilon_y ∣x′∣∣x−x′∣​ϵx​,∣y′∣∣y−y′∣​≤ϵy​

如何在图形上呈现观测点的误差呢?以yyy坐标为例,只需要在观测点(x,y)(x,y)(x,y)处画一条从点(x,y−ϵy)(x,y-\epsilon_y)(x,y−ϵy​)到点x,y+ϵyx,y+\epsilon_yx,y+ϵy​的线段即可。

本图中数据表Total中给出了三列值,第一二列是(x,y)(x,y)(x,y)的取值,而第三列就是yyy值的绝对误差。

画误差线的代码只有下面一行:

 \addplot+[red!90!black,mark=none]plot [
error bars/.cd,
y dir=both, y explicit,
] table [y error=error] {yEr.dat};
\end{axis}
  • [red!90!black,mark=none]中选项说明折线的颜色和标记;
  • [error bars/.cd,y dir=both, y explicit,]中第一个键是对数值的设置,y dir=both的含义是显示完整的误差线,另外两种选择:y dir=plusy dir=minus分别只显示误差线的上半部分和下半部分。y explicit,是为每个观测值指定误差范围,相反地,y fixed=0.1是为所有的观测值指定一个统一的、不变的误差值。
\begin{tikzpicture}
\begin{axis}[
legend style={at={(0.5,-0.20)},
anchor=north,legend columns=-1},
ylabel={C(\textup{$\mu$g}\ \textup{g}$^{-1}$)},
symbolic x coords={bDec,Dec, Jan, Feb, Mar,
Apr, May, Jun, Jul, Aug, Sep, Oct, Nov,aNov},
xtick=data,
x tick label style={rotate=45,anchor=east},
xlabel={Month},
ymin=0,ymax=3500,
xmin=bDec,xmax=aNov
]\addplot+[red!90!black,mark=none]plot [
error bars/.cd,
y dir=both, y explicit,
] table [y error=error] {yEr.dat};
\end{axis}
\end{tikzpicture}

合成一张图

将堆叠图和折线+误差线图放在同一个tikzpicture环境中,就能将它们合成为一幅图了,注意要将堆叠图放在前面,折线图+误差线图放在后面,否则会出现折线图被遮挡的意外效果哟!

得到的成图如下:

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

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

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

Tikz作图教程:堆叠柱形图+折线图+误差线相关推荐

  1. ggplot作图(条形图 误差线点图 折线图 箱线图 密度图 岭图 小提琴图 云雨图 直方图 PCA图 PcoA图 NDMS图 和弦图 维恩图 时间序列图 系统发育树 饼图 生物区系图 地图 )

    文章目录 基本原理 Plot = data + mapping +geometry + (Statistics, Scale, Coordinate) + Details 基础代码 常用图 条形图 点 ...

  2. Tikz作图教程:如何画流程图?——从一个简单的例子谈起

    今天我们来谈谈如何画流程图.广义的流程图是指流经一个系统的信息流.观点流或部件流的图形代表. 流程图主要由两种元素构成:文本框和连接线段(通常带有箭头).Tikz画这两类元素的工具是node和--线段 ...

  3. Tikz作图教程:动手 VS 动脑? 97行代码 VS 6行代码?

    在学习Tikz的过程中,当我们对基本代码有一定熟悉之后,作图思路就是更重要的事情了.本文借一个例子谈谈作图思路的问题. 昨天在网上看到这样一幅图形: 看上去挺复杂的一个图,心里琢磨如果用Tikz来画, ...

  4. Tikz 作图教程:pgfplots 宏包三维数据的可视化绘图

    前一篇推文讲解了使用pgfplots 宏包导入二维数据和可视化绘图的方法.今天我们来介绍一下科研工作者常常用到的三维数据的导入与绘图的方法. 当一个函数关系式中出现了两个自变量时,我们需要用空间曲面来 ...

  5. Tikz作图教程:pgfplots宏包二维数据可视化的数据导入方法

    pgfplots 绘图思想简介 下面一段介绍来自pgfplots说明文档的引言部分,它对pgfplots的绘图思想作了清晰地描述: 科研工作者在交流研究结果.论文时,将数据可视化往往是必要和方便的. ...

  6. Tikz作图教程:图论中环的画法

    Tikz作图教程:图论中环的画法 今天我们来介绍基于Tikz的图论图形绘制宏包:tkz-graph.学会三个基本作图命令和若干选项参数,就能非常方便地绘制各种图论中的图形. 一个图里面有三类要素:顶点 ...

  7. echarts柱形图+折线图混合案例

    效果图 vue柱形图+折线图组件 <template><div ref="two"></div> </template> <s ...

  8. Echarts柱形图折线图合并demo(含图例)

    文章目录 前言 前言 柱形图折线图合并demo(含图例) option = {xAxis: {type: 'category',data: [2001, 2002, 2003, 2004, 2005] ...

  9. vue中使用echarts绘柱形图+折线图

    一.完成后效果图 二..vue文件完整代码 <template><!-- 柱形图+折线图多个展示 --><divid="myMaxbar":style ...

最新文章

  1. 基于SIP和RTP协议的开源VOIP之QuteCom简单介绍
  2. 介绍微软一个罕为人知的无敌命令
  3. oracle外部表导入,oracle 外部表导入时间日期类型数据
  4. mysql数据库建新分区_mysql数据库分区
  5. 支持向量机概念图解_支持向量机:基本概念
  6. linux安装openssl
  7. 联万物,+智能,为行业,华为云升级OceanConnect IoT全栈云服务
  8. 【CCCC】L3-014 周游世界 (30分),,DFS搜索最短路,路径打印
  9. C#利用NPOI导出Excel
  10. 联想m7400更换墨粉盒怎么清零_联想M7400、7600打印机换粉盒或加碳粉后,仍提示缺粉?联想7400、7600硒鼓加粉清零图解...
  11. cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client libr....
  12. 360浏览器极速模式和兼容模式
  13. 01-Sass 环境搭建与基本语法
  14. 深圳安全研讨会11月15日举行
  15. ntp服务器安装和配置文件,NTP服务的安装、配置和使用
  16. 使用Rational Team Concert 3.0和ODC,第2部分,提高项目质量。使用BIRT定制报告支持ODC分析...
  17. qq空间把android改成iphone,装逼时代 教你如何修改QQ微信小尾巴为来自iphone6
  18. java map 空指针异常_Java8使用Collectors toMap,当value为null时报空指针异常
  19. 感觉最近自己太张狂了一些。
  20. 构思编辑器教你如何不用代码排版出好看的微信公众号文章

热门文章

  1. xp/ win 7 如何设置电脑的保护色(绿豆沙色)以及Chrome浏览器
  2. matlab绘三维椭球面_运用Matlab讨论椭球面性质
  3. android 给界面加指定的字体
  4. 关于现代数学的前沿课题
  5. 通俗讲解入栈、出栈(C语言)
  6. id=%d是什么意思呢?
  7. JAVA 笔记 09 代理
  8. Android图片叠加效果
  9. 宝信软件丛力群:工业互联网赋能钢铁行业高质量发展
  10. 个人家庭宽带搭建多域名web网站服务器配置