Home

Awesome

Awesome LaTeX drawing

MIT License repo size GitHub stars

<h6 align="center">Made by Xinyu Chen • :globe_with_meridians: <a href="https://xinychen.github.io">https://xinychen.github.io</a></h6>

awesome-latex-drawing is a collection of 30+ academic drawing examples for using LaTeX, including Bayesian networks, function plotting, graphical models, tensor structure, and technical frameworks.

<br>

Description

LaTeX is a high-quality typesetting system available as free software, widely used in recent years for creating academic graphics. Its popularity stems from its ability to handle complex illustrations with special symbols and mathematical equations, making it ideal for drawing detailed graphics in research.

This project introduces several graphics created using LaTeX, with examples that are easy to follow on Overleaf, a popular online LaTeX platform. If you're interested, feel free to explore and reproduce our examples on Overleaf at overleaf.com.

<br>

Contents

Table of Examples

<br>

Gallery

Looking for some good LaTeX drawing examples? Here are 30+ graphics for showing how to draw in LaTaX.

Bayesian Networks

LaTeX provides some powerful domain-specific packages and tools like tikz to enable flexible graphical models. Bayesian networks represent a family of graphical models consisting of variables (usually denoted by nodes) and dependency relationships (usually denoted by arrows). Fortunately, tikz has a specific library for drawing Bayesian networks and directed factor graphs.

Another toolbox in Python: https://docs.daft-pgm.org/en/latest/

Bayesian Tensor Factorization

[Example 1]

This example is from the following paper:

<a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/BayesNet/BCPF.tex"> <img src="BayesNet/BCPF.png" alt="drawing" width="280" align="right"/> </a> which shows the Bayesian network of Bayesian CP factorization (BCPF) model. To draw this Bayesian network example, there are some preliminaries to follow: <br>

Please click on the image and check out the source code.

<br> <p align="center"> <img align="middle" src="BayesNet/BGCP.png" width="700" /> </p> <br>
[Example 2]

This example is from the following paper:

Xinyu Chen, Zhaocheng He, Lijun Sun (2019). A Bayesian tensor decomposition approach for spatiotemporal traffic data imputation. Transportation Research Part C: Emerging Technologies, 98: 73-84.

<a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/BayesNet/BGCP-1.tex"> <img src="BayesNet/BGCP-1.png" alt="drawing" width="280" align="right"/> </a> which shows the Bayesian network of Bayesian Gaussian CP factorization (BGCP) model. To draw this Bayesian network example, there are some preliminaries to follow:

Please click on the image and check out the source code. If you are interested in the original Bayesian network of BGCP in the paper, please check out BGCP.tex.

<br>
[Example 3]

This example is from the following paper:

Xinyu Chen, Zhaocheng He, Yixian Chen, Yuhuan Lu, Jiawei Wang (2019). Missing traffic data imputation and pattern discovery with a Bayesian augmented tensor factorization model. Transportation Research Part C: Emerging Technologies, 104: 66-77.

<a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/BayesNet/BATF.tex"> <img src="BayesNet/BATF.png" alt="drawing" width="300" align="right"/> </a> which shows the Bayesian network of Bayesian augmented tensor factorization (BATF) model. To draw this Bayesian network example, there are some preliminaries to follow:

Please click on the image and check out the source code.

<br>
[Example 4]
<!-- > - Open [btmf.tex](https://github.com/xinychen/awesome-latex-drawing/blob/master/BayesNet/btmf_net.tex) in your overleaf project, then you will see the following picture: > > <p align="center"> > <img align="middle" src="BayesNet/btmf_net.png" width="500"> > </p> > > <p align = "center"> > <b>Figure 5</b>: BTMF (Bayesian temporal matrix factorization) model as a Bayesian network and a directed factor graph. > </p> -->

This example is from the following paper:

Xinyu Chen, Lijun Sun (2021). Bayesian temporal factorization for multidimensional time series prediction. IEEE Transactions on Pattern Analysis and Machine Intelligence, 44 (9): 4659-4673.

<a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/BayesNet/BTMF.tex"> <img src="BayesNet/BTMF.png" alt="drawing" width="450" align="right"/> </a> which shows the Bayesian network of Bayesian temporal matrix factorization (BTMF) model. To draw this Bayesian network example, there are some preliminaries to follow:

Please click on the image and check out the source code. Instead of multivariate vector autoregressive process on temporal factors, we can also use univariate autoregressive process to rebuild BTMF. The Beyasian network is available at btmf_net.png, you can also check out the source code btmf_net.tex.

<br>

Graphical Models

[Example 5]
<p align="center"> <a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/Framework/graphical_time_series.tex"> <img align="middle" src="https://github.com/xinychen/awesome-latex-drawing/blob/master/Framework/graphical_time_series.png" alt="drawing" width="570"> </a> </p> <br> <p align="center"> <a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/Framework/tensor_time_series.tex"> <img align="middle" src="https://github.com/xinychen/awesome-latex-drawing/blob/master/Framework/tensor_time_series.png" alt="drawing" width="570"> </a> </p>

These two examples show the partially observed time series matrix and tensor, respectively. To draw both two examples, we can follow these steps:

<br>
[Example 6]
<p align="center"> <a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/Framework/graphical_matrix_time_series.tex"> <img align="middle" src="https://github.com/xinychen/awesome-latex-drawing/blob/master/Framework/graphical_matrix_time_series.png" alt="drawing" width="550"> </a> </p> <br> <p align="center"> <a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/Framework/graphical_tensor_time_series.tex"> <img align="middle" src="https://github.com/xinychen/awesome-latex-drawing/blob/master/Framework/graphical_tensor_time_series.png" alt="drawing" width="550"> </a> </p>

These two examples show the time series prediction in the presence of missing values. To draw both two examples, we can follow these steps:

<br>
[Example 7]
<p align="center"> <a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/Framework/circulant_graph_degree_2.tex"> <img src="https://github.com/xinychen/awesome-latex-drawing/blob/master/Framework/circulant_graph_degree_2.png" alt="drawing" width="300" align="middle" hspace="50"> </a> <a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/Framework/circulant_graph_degree_4.tex"> <img src="https://github.com/xinychen/awesome-latex-drawing/blob/master/Framework/circulant_graph_degree_4.png" alt="drawing" width="300" align="middle" hspace="50"> </a> </p>

These two examples show the undirected and circulant graphs on the relational data samples with certain degrees. To draw both two examples, we can follow these steps:

<br>
[Example 8]
<p align="center"> <a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/Framework/Laplacian_convolutional_time_series.tex"> <img src="Framework/Laplacian_convolutional_time_series.png" alt="drawing" width="550" align="middle"/> </a> </p>

This example is from the following paper:

Xinyu Chen, Zhanhong Cheng, Nicolas Saunier, Lijun Sun (2022). Laplacian convolutional representation for traffic time series imputation. arXiv preprint arXiv: 2212.01529.

which gives a graphical illustration of the Laplacian convolutional model for time series imputation. To draw the example, we can follow these steps:

<br>

pgfplots Function Plotting

[Example 9]
<p align="center"> <a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/pgfplots-function/erlang_pdf.tex"> <img align="middle" src="pgfplots-function/erlang_pdf.png" alt="drawing" width="350" hspace="30"> </a> <a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/pgfplots-function/erlang_cdf.tex"> <img align="middle" src="pgfplots-function/erlang_cdf.png" alt="drawing" width="350" hspace="30"> </a> </p>

These two examples show the probability density function (PDF) and cumulative density function (CDF) of Erlang distribution, respectively. To draw the example, there are few steps to follow:

<br>
[Example 10]
<a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/pgfplots-function/normal_pdf.tex"> <img src="pgfplots-function/normal_pdf.png" alt="drawing" width="350" align="right"/> </a>

This example shows the PDF of normal distribution with different means and variances. To draw this example, there are few step to follow:

<br>
[Example 11]
<p align="center"> <a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/pgfplots-function/lognormal_pdf.tex"> <img align="middle" src="pgfplots-function/lognormal_pdf.png" alt="drawing" width="300" hspace="20"> </a> <a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/pgfplots-function/bilognormal_pdf.tex"> <img align="middle" src="pgfplots-function/bilognormal_pdf.png" alt="drawing" width="300" hspace="20"> </a> </p>

These two examples show the PDF and joint PDF of Lognormal distributions, respectively. There are some recommended material to follow the examples:

<br>
[Example 12]
<p align="center"> <a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/pgfplots-function/conj_grad_example_1.tex"> <img align="middle" src="https://github.com/xinychen/awesome-latex-drawing/blob/master/pgfplots-function/conj_grad_example_1.png" alt="drawing" width="300" hspace="50"> </a> <a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/pgfplots-function/conj_grad_example_2.tex"> <img align="middle" src="https://github.com/xinychen/awesome-latex-drawing/blob/master/pgfplots-function/conj_grad_example_2.png" alt="drawing" width="300" hspace="50"> </a> </p>

These two examples show the iterative process of conjugate gradient for solving a system of linear equations.

<br>
[Example 13]
<p align="center"> <a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/data-visualization/RMseries.tex"> <img align="middle" src="https://github.com/xinychen/awesome-latex-drawing/blob/master/data-visualization/RMseries.png" alt="drawing" width="320" hspace="20"> </a> <a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/data-visualization/NMseries.tex"> <img align="middle" src="https://github.com/xinychen/awesome-latex-drawing/blob/master/data-visualization/NMseries.png" alt="drawing" width="320" hspace="20"> </a> </p>

These two examples show the random and non-random missing patterns. To draw both two examples, we can follow these steps:

<br>
[Example 14]
<p align="center"> <a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/pgfplots-function/sin_cos_functions.tex"> <img align="middle" src="pgfplots-function/sin_cos_functions.png" alt="drawing" width="600"> </a> </p>

This example shows four sequences consisting of Sine and Cosine functions. When regarding these sequences as time series, then we can see two kinds of temporal dynamics, that is, one is from Sine function, while another is from Cosine function. To draw this example, we can follow these steps:

<br>
[Example 15]

This example illustrates the mechanism of time series forecasting on streaming data in our tracebase project. To draw this example, we can follow these steps:

<a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/pgfplots-function/forecasting.tex"> <img src="pgfplots-function/forecasting.png" alt="drawing" width="400", align="right"/> </a> <br>

tikz for Matrix Structure

[Example 16]
<a href="https://github.com/xinychen/tracebase/blob/main/graphics/prob.tex"> <img src="https://github.com/xinychen/tracebase/blob/main/graphics/prob.png" alt="drawing" width="300", align="right"/> </a>

This example gives a graphical illustration of the multivariate time series forecasting problem with missing values. To draw this example, we can follow these steps:

<br>
[Example 17]
<p align="center"> <a href="https://github.com/xinychen/tracebase/blob/main/graphics/tmf.tex"><img align="middle" src="https://github.com/xinychen/tracebase/blob/main/graphics/tmf.png" alt="drawing" width="700"> </a> </p>

This example gives a graphical illustration of the temporal matrix factorization. To draw this example, we can follow these steps:

<br>
[Example 18]
<a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/Framework/rolling_prediction.tex"> <img src="https://github.com/xinychen/awesome-latex-drawing/blob/master/Framework/rolling_prediction.png" alt="drawing" width="420" align="right"/> </a>

This example gives a graphical illustration of the rolling time series forecasting with temporal matrix factorization. To draw this example, we can follow these steps:

<br>

tikz-3dplot for Tensor Structure

[Example 19]

This example gives a graphical illustration of a third-order tensor. To draw this example, we can follow these steps:

<a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/TensorFactorization/tensor.tex"> <img src="TensorFactorization/tensor.png" alt="drawing" width="400", align="right"/> </a> <br>
[Example 20]

This example gives a graphical illustration of classical CP tensor factorization on a third-order tensor. To draw this example, we can follow these steps:

<a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/TensorFactorization/CP_factorization.tex"> <img src="TensorFactorization/CP_factorization.png" alt="drawing" width="450", align="right"/> </a> <br>
[Example 21]
<p align="center"> <a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/TensorFactorization/AuTF.tex"><img align="middle" src="TensorFactorization/AuTF.png" alt="drawing" width="650"> </a> </p>

This example gives a graphical illustration of augmented tensor factorization model. To draw this example, we can follow these steps:

<br>
[Example 22]
<p align="center"> <a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/Framework/tc_framework.tex"><img align="middle" src="https://github.com/xinychen/awesome-latex-drawing/blob/master/Framework/tc_framework.png" alt="drawing" width="800"> </a> </p>

This example gives a graphical illustration of tensor completion task and its framework including data organization and tensor completion, in which traffic measurements are partially observed. To draw this example, we can follow these steps:

<br>
[Example 23]
<p align="center"> <a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/Framework/latc_framework.tex"><img align="middle" src="https://github.com/xinychen/awesome-latex-drawing/blob/master/Framework/latc_framework.png" alt="drawing" width="700"> </a> </p>

This example gives a graphical illustration of low-rank autoregressive tensor completion model. To draw this example, we can follow these steps:

<br>
[Example 24]

This example gives a graphical illustration of singular value thresholding process of the tensor data with unitary transform. To draw this example, we can follow these steps:

<a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/TensorFactorization/tensor_svt.tex"><img align="right" src="https://github.com/xinychen/awesome-latex-drawing/blob/master/TensorFactorization/tensor_svt.png" alt="drawing" width="500"> </a>

<br>
[Example 25]
<p align="center"> <a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/Framework/LRTC-flow.tex"><img align="middle" src="https://github.com/xinychen/awesome-latex-drawing/blob/master/Framework/LRTC-flow.png" alt="drawing" width="650"> </a> </p>

This example gives a graphical illustration of low-rank tensor completion model. To draw this example, we can follow these steps:

<br>
[Example 26]
<p align="center"> <a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/TensorFactorization/TVART.tex"><img align="middle" src="https://github.com/xinychen/awesome-latex-drawing/blob/master/TensorFactorization/TVART.png" alt="drawing" width="650"> </a> </p>

This example gives a graphical illustration of low-rank tensor regression model. To draw this example, we can follow these steps:

<br>

Data Visualization

[Example 27]
<p align="center"> <a href="https://github.com/xinychen/awesome-latex-drawing/blob/master/data-visualization/performance_bar.tex"><img align="middle" src="data-visualization/performance_bar.png" alt="drawing" width="750"> </p>

This example shows the imputation accuracy of some matrix and tensor models. To draw this example, we can follow these steps:

<br>

Related Projects

<br>

Publications

Most of these examples are from our papers: