Tikz作图教程:pgfplots宏包—三维数据散点图,完美重构文献美图

17 篇文章 4 订阅
11 篇文章 3 订阅

在这里插入图片描述

三组散点实验数据,彼此相差不大,如何对比它们的差异呢?我们来看一幅来自文献的图:
在这里插入图片描述

作者别处心裁地将它们画在三维空间的三个平行的平面上,每个平面设置了三种不透明颜色,六条曲线设置不同的颜色、标注,图形下方有图例,看上去赏心悦目。

如何重构这样一幅漂亮的图呢?谭编使用Origin完美重构了此图(见下图):
在这里插入图片描述

今天我们来用LaTex宏包pgfplots(基于Tikz的宏包)来重新绘制这幅图。

1. 输入实验数据,作出初步的图形

\documentclass{standalone}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usepgfplotslibrary{colormaps}
\usetikzlibrary{
  pgfplots.groupplots,
  matrix
}
 \pgfplotsset{width=7cm,compat=1.17}

 \begin{document}

\begin{tikzpicture}
\begin{axis}

\addplot3[smooth,very thick,red!70!black,mark=triangle*,mark size=4pt] coordinates {(2.8,1000,-3) (2.9,1000,-3.2) (3,1000,-3.5)(3.1,1000,-3.8)(3.2,1000,-4.3)(3.3,1000,-4.9)(3.4,1000,-5.4)};\label{plots:plot1}

\addplot3 [smooth,very thick,red!80!black,mark=pentagon,mark size =4pt]coordinates {(2.8,1000,-2.3) (2.9,1000,-2.5) (3,1000,-2.8)(3.1,1000,-3.1)(3.2,1000,-3.6)(3.3,1000,-4.2)(3.4,1000,-4.7)};\label{plots:plot2}

\end{axis}

\end{tikzpicture}
\end{document} 

上面的代码看上去很复杂,其实关键的只有一句:

\addplot3[smooth,very thick,red!70!black,mark=triangle*,mark size=4pt] coordinates {(2.8,1000,-3) (2.9,1000,-3.2) (3,1000,-3.5)(3.1,1000,-3.8)(3.2,1000,-4.3)(3.3,1000,-4.9)(3.4,1000,-5.4)};\label{plots:plot1}

用它来录入数据, 其语法为

\addplot3[图形设置]coordinates {(三维坐标1),(三维坐标2),...(三维坐标n)}

得到的图形为:
在这里插入图片描述

看上去挺low,是不是? 别急,等下我们在打扮打扮就漂亮了!俗话说得好,“三分长相,七分打扮”嘛!

继续按照上面的方法加入其它两组数据。

2. 增加半透明平面

只需要在每组数据所在的位置画一个平面,设置颜色为半透明即可, 例如红色的平面:

\addplot3 [fill=red!30,draw=red!30,opacity=0.6]coordinates {(2.75,1000,-6.2) (3.45,1000,-6.2) (3.45,1000,-2.2)(2.75,1000,-2.2)(2.75,1000,-6.2)};

得到的图形为:
在这里插入图片描述

3. 设置坐标系

我们需要为z轴增加一些刻度,为三个坐标轴增加说明文字,这些只需要在\begin{axis}[]的中括号中加一些键值就可以了:

\begin{axis}[
view={40}{30},
legend cell align=left,
height=15cm,
width=13.5cm,
%xmin=2.8,xmax=3.4,
xtick={2.8,2.9,...,3.4},
zmin=-6.2,zmax=-2.2,
ztick={-6,-5.5,...,-2},
grid=major,
xlabel=$1000\ T^{-1}/K^{-1}$,
ylabel=Molecular weight /g mol $^{-1}$,
zlabel=$\log \sigma / \textup{S}\ \textup{cm}^{-1}$,
label style={sloped},
]

4. 设置图例

我们将图例放在图形正下方,

\matrix[
          matrix of nodes,
          anchor=south,
          draw,
          inner sep=0.2em,
                 ]at(6,-2.5)
        {
          \ref{plots:plot1}& PGEDA-400 &[10pt]
          \ref{plots:plot2}& PEGDE-PEGDA-400
        \\
        \ref{plots:plot3}  & PGEDA-700&[10pt]
          \ref{plots:plot4} & PEGDE-PEGDA-700
          \\
           \ref{plots:plot5} & PGEDA-1000&[10pt]
          \ref{plots:plot6} & PEGDE-PEGDA-1000\\
                };

如果不喜欢图例外面的边框,也可以去掉它。最后得到的图形为:
在这里插入图片描述

大家注意比较一下使用pgfplots宏包作出来的图与原来的文献图,我们的优势是图中的文字、公式的字体与LaTeX的字体完全一致,非常和谐!使用pgfplots作出来的图与文章中的文字完美融合,非常好看!
在这里插入图片描述

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

【LaTeX微信交流加群:】

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

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

在这里插入图片描述

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值