news 2026/5/14 19:11:33

LaTeX绘图包终极对比分析:tikz、pgfplots、tikz-3dplot使用指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LaTeX绘图包终极对比分析:tikz、pgfplots、tikz-3dplot使用指南

LaTeX绘图包终极对比分析:tikz、pgfplots、tikz-3dplot使用指南

【免费下载链接】awesome-latex-drawingDrawing Bayesian networks, graphical models, tensors, technical frameworks, and illustrations in LaTeX.项目地址: https://gitcode.com/gh_mirrors/aw/awesome-latex-drawing

LaTeX作为学术界和科研领域广泛使用的排版系统,其强大的绘图功能让研究人员能够创建高质量的学术图表。在LaTeX绘图工具中,tikz、pgfplots和tikz-3dplot是三个最核心的绘图包,每个都有其独特的优势和适用场景。本文将为您提供完整的LaTeX绘图包使用指南,帮助您选择最适合的工具来绘制贝叶斯网络、数据可视化图表和三维图形。

📊 tikz:灵活强大的矢量绘图工具

tikz是LaTeX中最基础也最强大的绘图包,它提供了完整的矢量绘图能力。tikz特别适合绘制贝叶斯网络、图论结构、流程图等复杂图形结构。

tikz绘制贝叶斯网络示例

在科研论文中,贝叶斯网络是常见的图形表示方法。使用tikz的bayesnet库可以轻松创建专业的贝叶斯网络图:

贝叶斯网络图示例:使用tikz绘制的BATF模型

tikz核心功能特点

  • 节点和连接线控制:精确控制每个节点的位置、形状和样式
  • 贝叶斯网络专用库\usetikzlibrary{bayesnet}提供专业贝叶斯网络绘制功能
  • 数学公式集成:完美支持LaTeX数学公式
  • 分层结构:支持多层嵌套和分组

快速上手tikz代码示例

\documentclass[tikz, border = 0.1cm]{standalone} \usepackage{tikz} \usetikzlibrary{bayesnet} \usepackage{amsmath, amsthm, amssymb, amsfonts} \tikzset{>=latex} \begin{document} \begin{tikzpicture} \node[circle, draw = black, fill = gray!20] (obs) at (0, 0) {$y_{ijt}$}; \node[circle, draw = black] (ui) at (-0.9, 0.9) {$\boldsymbol{u}_{i}$}; \path [draw, ->] (ui) edge (obs); \end{tikzpicture} \end{document}

📈 pgfplots:专业的数据可视化工具

pgfplots是基于tikz构建的专业数据可视化包,专门用于绘制函数图像、散点图、柱状图等科学图表。它提供了丰富的坐标轴选项和数据处理功能。

pgfplots函数绘图示例

使用pgfplots绘制的双对数正态分布概率密度函数

pgfplots核心优势

  • 专业坐标轴系统:支持对数坐标、极坐标、三维坐标
  • 内置函数绘图:直接绘制数学函数,无需计算数据点
  • 数据文件支持:可以从外部文件读取数据
  • 丰富的图例系统:灵活配置图例位置和样式

pgfplots基础使用

\documentclass[border=2mm]{standalone} \usepackage{pgfplots} \pgfplotsset{compat=newest} \begin{document} \begin{tikzpicture} \begin{axis}[ xlabel=$x$, ylabel=$f(x)$, grid=major, domain=-3:3, samples=100 ] \addplot[blue, thick] {exp(-x^2/2)/sqrt(2*pi)}; \end{axis} \end{tikzpicture} \end{document}

🧊 tikz-3dplot:三维图形绘制利器

tikz-3dplot扩展了tikz的三维绘图能力,特别适合绘制张量分解、三维几何结构等复杂图形。在机器学习、张量分析等领域应用广泛。

三维张量结构示例

使用tikz-3dplot绘制的CP张量分解示意图

tikz-3dplot特色功能

  • 三维坐标系:支持任意角度的三维视角
  • 透视投影:提供真实的透视效果
  • 三维几何体:轻松绘制立方体、球体等三维对象
  • 坐标变换:支持旋转、平移、缩放等变换

三维绘图基础代码

\documentclass[tikz,border=0.1cm]{standalone} \usepackage{tikz,tikz-3dplot} \usepackage{amsmath,amsthm} \begin{document} \begin{tikzpicture} \tdplotsetmaincoords{60}{120} \coordinate (O) at (0,0,0); \draw[->] (O) -- (2,0,0) node[below] {$x$}; \draw[->] (O) -- (0,2,0) node[right] {$y$}; \draw[->] (O) -- (0,0,2) node[above] {$z$}; \end{tikzpicture} \end{document}

🔄 三大绘图包对比分析

特性tikzpgfplotstikz-3dplot
主要用途矢量图形、流程图、网络图数据可视化、函数绘图三维几何图形、张量结构
学习曲线中等较平缓较陡峭
数学支持优秀优秀优秀
三维支持有限支持3D绘图专业3D支持
文档丰富度非常丰富丰富中等

如何选择合适的绘图包?

  1. 选择tikz的场景

    • 绘制贝叶斯网络、概率图模型
    • 创建流程图、组织结构图
    • 需要高度自定义的矢量图形
  2. 选择pgfplots的场景

    • 绘制函数图像、数据图表
    • 需要专业坐标轴和刻度
    • 统计分析图表制作
  3. 选择tikz-3dplot的场景

    • 绘制三维张量结构
    • 机器学习模型可视化
    • 空间几何图形

🚀 快速开始:5个实用技巧

技巧1:组合使用多个包

在实际应用中,经常需要组合使用多个绘图包。例如,在tikz-3dplot绘制的三维图形中添加pgfplots的坐标轴:

\usepackage{tikz,pgfplots,tikz-3dplot} \pgfplotsset{compat=newest} \usetikzlibrary{3d}

技巧2:使用预定义样式

创建统一的绘图样式可以提高效率:

\tikzset{ mynode/.style={circle, draw=black, fill=blue!20, minimum size=1cm}, myarrow/.style={->, >=latex, thick} }

技巧3:模块化绘图代码

将复杂的图形分解为多个部分:

% 定义节点 \newcommand{\mynode}[2]{\node[circle,draw] (#1) at #2;} % 定义连接 \newcommand{\myconnect}[2]{\draw[->] (#1) -- (#2);}

技巧4:利用项目资源

awesome-latex-drawing项目提供了大量现成的LaTeX绘图示例,可以直接参考使用:

  • 贝叶斯网络:BayesNet/BATF.tex
  • 函数绘图:pgfplots-function/bilognormal_pdf.tex
  • 张量分解:TensorFactorization/CP_factorization.tex

技巧5:优化编译性能

对于复杂图形,可以:

  1. 使用standalone文档类单独编译图形
  2. 启用externalize功能缓存编译结果
  3. 适当减少samples参数提高渲染速度

📚 进阶学习资源

官方文档路径

  • tikz官方文档:包含完整的tikz使用手册和示例
  • pgfplots手册:详细的数据可视化指南
  • tikz-3dplot说明:三维绘图专项教程

项目示例文件结构

在awesome-latex-drawing项目中,您可以找到按类别组织的示例:

BayesNet/ # 贝叶斯网络示例 ├── BATF.tex # 贝叶斯增强张量分解 ├── BCPF.tex # 贝叶斯CP分解 └── BGCP.tex # 贝叶斯高斯CP分解 pgfplots-function/ # 函数绘图示例 ├── bilognormal_pdf.tex ├── erlang_cdf.tex └── normal_pdf.tex TensorFactorization/ # 张量分解示例 ├── CP_factorization.tex ├── tensor.png └── tensors.tex

💡 常见问题解答

Q1:tikz、pgfplots和tikz-3dplot有什么区别?

A:tikz是基础矢量绘图工具,pgfplots专注于数据可视化,tikz-3dplot则专门处理三维图形。三者可以单独使用,也可以组合使用。

Q2:如何绘制复杂的贝叶斯网络?

A:使用tikz的bayesnet库,结合节点、边和plate元素。参考项目中的BayesNet/BATF.tex示例。

Q3:pgfplots如何绘制三维函数?

A:使用\addplot3命令,设置view参数调整视角。参考pgfplots-function/bilognormal_pdf.tex。

Q4:tikz-3dplot如何设置视角?

A:使用\tdplotsetmaincoords{仰角}{方位角}命令,如\tdplotsetmaincoords{60}{120}

🎯 总结与建议

LaTeX绘图包为学术研究提供了强大的可视化工具。tikz适合绘制结构图,pgfplots擅长数据可视化,tikz-3dplot则专注于三维图形。根据您的具体需求选择合适的工具:

  • 初学者:从pgfplots开始,绘制简单的函数图像
  • 中级用户:学习tikz绘制贝叶斯网络
  • 高级用户:掌握tikz-3dplot处理三维张量结构

通过awesome-latex-drawing项目中的丰富示例,您可以快速掌握这些工具的使用技巧,创建出专业级的学术图表。记住,实践是最好的学习方法,多尝试、多修改现有示例,您将很快成为LaTeX绘图专家!✨

使用LaTeX绘制的性能对比柱状图,展示不同模型的准确率比较

【免费下载链接】awesome-latex-drawingDrawing Bayesian networks, graphical models, tensors, technical frameworks, and illustrations in LaTeX.项目地址: https://gitcode.com/gh_mirrors/aw/awesome-latex-drawing

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/14 19:02:34

【NotebookLM多语言支持深度评测】:覆盖12种主流语言的实测准确率、延迟与上下文断裂阈值(附独家对比基准数据)

更多请点击: https://intelliparadigm.com 第一章:NotebookLM多语言支持深度评测总览 NotebookLM 作为 Google 推出的基于用户上传文档的 AI 助手,其多语言能力直接影响非英语开发者与研究者的使用体验。本章聚焦于其对中文、日文、韩文、法…

作者头像 李华
网站建设 2026/5/14 19:00:55

大语言模型上下文漂移检测:原理、实现与工程实践

1. 项目概述:当你的AI助手开始“跑题”最近在折腾大语言模型应用开发的朋友,可能都遇到过一种让人哭笑不得的情况:你精心设计的对话机器人,聊着聊着就开始“神游天外”,要么重复之前说过的话,要么开始一本正…

作者头像 李华
网站建设 2026/5/14 18:52:11

C++11(可变参数模板,emplace系列接口)

文章目录可变参数模板参数包展开emplace接口可变参数模板 c11支持可变参数模板,可以自定义模板参数的数量,可变数目的参数被称为参数包 参数包分为模板参数包和函数参数包 一个包可以包含0或多个参数,可以通过sizeof…(args)来获取参数个数&…

作者头像 李华