Matplotlib 简明教程
Matplotlib - Latex
What is LaTeX?
LaTeX 是一种广泛用于制作科学和技术文档的排版系统,尤其是在数学、物理、计算机科学、工程学和学术写作等学科中。它以其对复杂的数学公式、科学符号和结构化文本格式的卓越排版而备受推崇。
Key Aspects of LaTeX
以下是 LaTeX 的主要方面。
-
Markup Language − LaTeX 是一种标记语言,这意味着它使用命令和标签对文本进行格式化,而不是 WYSIWYG ,缩写为 What You See Is What You Get 编辑器。用户用嵌入式命令编写纯文本,这些命令指定结构和格式。
-
High-Quality Typesetting − LaTeX 出色地制作具有精确的排版和排版功能的专业外观文档。它非常适合处理复杂结构, مانند 数学公式、表格、书目和交叉引用。
-
Package System − LaTeX 提供了大量组件牭,这些组件牭可扩展其针对特定任务或文档类型的功能,提供模板、样式和附加功能。
-
Free and Open Source − LaTeX 是免费使用的,并得到了强大的开源社区的支持,确保持续开发以及组件牭和资源的丰富生态系统。
-
Components of LaTeX − matplotlib 库的 LaTex 具有以下组件。让我们详细了解其中的每一个。
-
Document Class − 文档类指定要创建的文档类型,并定义其整体结构、布局和格式。它充当模板,为整个文档设置样式和行为。不同的文档类可用于适应各种类型的文档,例如文章、报告、书籍、演示文稿等。
-
Preamble − 在 LaTeX 中,前言是位于正文和 \begin{document} 命令之前的文档部分。在这里,我们定义文档设置、加载组件牭、设置参数并配置适用于整个文档的全局设置。前言充当一个设置区域,我们在其中准备 LaTeX 以处理文档的主体。
-
Document Body − LaTeX 中的文档主体是我们的文档内容所在的主要部分。它在前言和 \begin{document} 命令之后开始,一直持续到 \end{document} 命令。此部分包括实际文本、章节、小节、方程、数字、表格以及构成文档核心内容的任何其他元素。
Advantages of LaTeX
以下是 LaTex 的优点。
-
Quality Typesetting − 能够产生高质量的输出,特别是针对科学和技术文档。
-
Cross-Referencing − 简化了方程、图片、表格和章节的引用和交叉引用。
-
Version Control − 通过基于纯文本的文件,简化了版本控制和协作。
-
Customization − 允许高度自定义文档的样式、布局和格式。
Disadvantages of LaTeX
-
Learning Curve − 需要学习其语法和命令,这对于初学者而言可能具有威慑力。
-
Limited WYSIWYG − 缺乏即时的视觉反馈(所见即所得),这对于习惯了图形编辑器的部分用户而言可能具有挑战性。
Usage of LaTeX
-
Academic Writing − 学术论文、论文、论文答辩
-
Scientific − 科学报告、文章和期刊
-
Technical Documents − 技术文档、手册
-
Presentations − 使用 Beamer 等工具进行演示
Writing our own LaTeX preamble
要在 Matplotlib 中编写自己的 LaTeX 导言,我们可以使用此示例作为参考。
Example 1
import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
x = np.linspace(-10, 10, 100)
y = np.exp(x)
plt.plot(x, y, color='red', label="$y=e^{x}$")
plt.legend(loc='upper right')
plt.show()
这会产生以下输出 −
Example 2
在此示例中,我们正在 .py 文件内的绘图图例中使用 Latex 公式。
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
x = np.linspace(1, 10, 1000)
y = np.sin(x)
plt.plot(x, y, label=r'$\sin (x)$', c="red", lw=2)
plt.legend()
plt.show()
这会产生以下输出 −
在标签中放置一个更复杂的方程式,例如,label=r’αiπ+1=0'。现在看看绘图右上角的图例。
Rendering mathematical expressions
在 LaTeX 中呈现数学表达式,需要使用 LaTeX 语法来编写数学方程、符号和公式。LaTeX 提供了一套全面的命令和符号,以便以精确和清晰的方式创建复杂的数学表达式。
LaTeX for Mathematical Expressions
以下是在数学表达式中 LaTex 的组成部分。
-
Inline Math Mode − LaTeX 中的内联数学模式用于在文档文本中包含数学表达式。我们可以通过将数学表达式放在一对单美元符号之间来使用内联数学模式 $…​$ 。
-
Using the inline math mode − 在此示例中,数学表达式
\frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
使用内联数学模式放在了文本中。结果是数学表达式呈现在文本行内。
Example
import matplotlib.pyplot as plt
equation = r'$x = \frac{{-b \pm \sqrt{{b^2 - 4ac}}}}{{2a}}$'
plt.text(0.5, 0.5, equation, fontsize=12, ha='center')
plt.axis('off')
plt.show()
这会产生以下输出 −
Display Math Mode
LaTeX 中的显示数学模式用于在单独的块中展示数学表达式,居中显示并区别于周围文本。它通常用于文档中更大或独立的方程,这些方程值得突出显示。
要在 LaTeX 中使用显示数学模式,我们有若干选项,逐个来了解。
用 Gemini 将数学表达式放在 @ {s0} − 之间
$$
f(x) = \int_{a}^{b} g(x) \, dx
$$
这会产生以下输出 −
The 'equation' Environment
使用 equation
环境创建可编号的方程式。
\begin{equation}
f(x) = \int_{a}^{b} g(x) \, dx
\end{equation}
这会产生以下输出 −
@ {s1} - 以上代码行可以在 Jupyter Notebook 标记模式中执行。
Symbols and Operators
在 LaTeX 中,我们可以使用各种符号和运算符,来表示数学符号、表达式和运算。以下是一些常用的符号和运算符以及它们的 LaTeX 命令。
-
Greek Letters - Alpha:
\alpha
,Beta:\beta
,Gamma:\gamma
,Delta:\delta
,依此类推。 -
Arithmetic Operators - 加:
+
,减:-
,乘:\times
或*
,除:\div
或/
-
Relations and Comparisons - 等于:
=
,不等于:\neq
,小于:<
,大于:>
,依此类推。 -
Set Theory - 并集:
\cup
,交集:\cap
,子集:\subset
,超集:\supset
等 -
Calculus and Limits - 积分:
\int
,求和:\sum
,极限值:\lim
,导数:\frac{dy}{dx}
-
Functions - 正弦:
\sin
,余弦:\cos
,正切:\tan
,对数:\log
,指数:\exp
-
Roots and Exponents - 平方根:
\sqrt{x}
,指数:x^2
,下标:x_1
,上标:x^i
Other Notations
-
Fractions −
\frac{numerator}{denominator}
-
@ {s2} - @ {s3}、@ {s4}、@ {s5} 等,使用 @ {s6} 包
-
@ {s7} - 例如,@ {s8} 表示无穷大,@ {s9} 表示空集等。
在此示例中,我们使用 @ {s10} 在 matplotlib 库的 LaTex 中显示符号和运算符。
import matplotlib.pyplot as plt
import matplotlib as mpl
equation = r'$(\alpha + \beta = \gamma \times \delta)$'
plt.figure(figsize=(6, 3))
plt.text(0.5, 0.5, equation, fontsize=12, ha='center', va='center')
plt.axis('off')
plt.show()
这将显示以下方程式:
利用这些用于符号和运算符的 LaTeX 命令,我们可以在 LaTeX 文档中创建具有精准度和清晰度的复杂数学表达式。
Fractions
在 LaTeX 中,我们可以轻松地创建分数、下标和上标以使用特定命令和符号表示数学表达式。
要创建分数,我们可以使用 @ {s11} 命令。在此示例中,我们创建分数 3/4 ¾。
import matplotlib.pyplot as plt
import matplotlib as mpl
equation = r'The fraction is $\frac{3}{4}$'
plt.figure(figsize=(6, 3))
plt.text(0.5, 0.5, equation, fontsize=12, ha='center', va='center')
plt.axis('off')
plt.show()
这将生成以下方程式:
Matrices and Arrays
LaTeX 中使用矩阵和数组以矩阵形式表示数据或显示方程组。 array 环境是 LaTeX 中创建矩阵和数组的基本结构,而 amsmath 软件包提供的 matrix 环境提供了额外的功能和更简单的矩阵语法。
Creating Matrices and Arrays
以下是如何使用各自的环境创建数组和矩阵。
‘array’ 环境允许我们在 LaTeX 中创建矩阵或数组。
\[
\begin{array}{ccc}
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9 \\
\end{array}
\]
这将生成以下方程式:
@ {s1} - 以上代码行可以在 Jupyter Notebook 标记模式中执行。
Using ‘amsmath’ Package’s ‘matrix’ Environments
amsmath 包提供了 matrix, pmatrix, bmatrix, Bmatrix, vmatrix, Vmatrix 等方便的矩阵环境,简化了矩阵的创建。
\[
\begin{matrix}
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9 \\
\end{matrix}
\]
这将生成以下方程式:
@ {s1} - 以上代码行可以在 Jupyter Notebook 标记模式中执行。
Matrix Formatting
这里将使用 LaTeX 对齐矩阵的列。在矩阵或数组中,我们可以使用 c 表示居中、l 表示左对齐和 r 表示右对齐,在 array 环境中指定列对齐方式。
下面是应用列对齐到矩阵的示例。
\[
\begin{array}{ccc}
1 & 222 & 3 \\
4 & 55555 & 6 \\
7 & 888 & 999999 \\
\end{array}
\]
这将生成以下方程式:
@ {s1} - 以上代码行可以在 Jupyter Notebook 标记模式中执行。
Additional Notes
-
LaTeX 中的矩阵和数组包含在 \[ …​ \] 或 equation 环境中,以将它们显示为独立的方程。
-
& 符号分隔行内的元素,而 \\ 开始新的一行。
LaTeX 为显示矩阵和数组提供了多功能工具,允许我们以各种对齐方式和配置以矩阵形式表示数学数据或方程。LaTeX 可以创建矩阵和数组以用于数学符号。
\begin{bmatrix}
1 & 2 \\
3 & 4
\end{bmatrix}
这将生成以下方程式:
@ {s1} - 以上代码行可以在 Jupyter Notebook 标记模式中执行。
Special Functions
LaTeX 支持特殊函数的符号,例如三角函数、对数等。
import matplotlib.pyplot as plt
# LaTeX code for the bold text
bold_text = r'$\sin(\theta), \log(x), \lim_{x \to \infty} f(x)$'
# Create a figure and display the bold text
plt.figure(figsize=(6, 3))
plt.text(0.5, 0.5, bold_text, fontsize=12, ha='center', va='center')
plt.axis('off')
plt.show()
Remove random unwanted space in LaTeX-style maths
在数学文本中,LaTeX 忽略您键入的空格并按照其方式使用空格。如果您想要不同的空格样式,可以使用以下四个命令。
-
\; − thick space
-
\: − medium space
-
@ {s12} − 一个细空格
-
@ {s13} − 一个负细空格
若要在 matplotlib 图中消除 LaTeX 样式数学中的随机多余空格,可以使用 "\!",这将减少多余的间距。
下面是应用列对齐到矩阵的示例。
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
plt.subplot(211)
plt.text(0.4, 0.4, r'$\sum_{n=1}^{\infty}\; \frac{-e^{i\pi}}{2^n}!\left[a^2+\delta ^2- \frac{\pi}{2} \right ]$', fontsize=16, color='r')
plt.title("With thick space")
plt.subplot(212)
plt.text(0.4, 0.4, r'$\sum_{n=1}^{\infty}\! \frac{-e^{i\pi}}{2^n}!\left[a^2+\delta ^2- \frac{\pi}{2} \right ]$', fontsize=16, color='r')
plt.title("With thin space")
plt.show()
这将生成以下方程式:
请注意“Σ(西格玛)”符号后的间距差异。在第一种情况下,我们使用了粗间距 (\;),在第二种情况下,我们使用了细间距 (\!) 来减少多余的间距。
What is Text formatting in LaTex?
在注释中,在图、图形或绘图中对 LaTeX 文本进行格式化,例如创建的那些。Matplotlib 库可以在注释文本中使用 LaTeX 命令的一个子集来完成。注释有助于为图形中的元素添加说明性标签、说明或注释。
在使用诸如 Matplotlib 之类的工具处理注释中支持 LaTeX 文本渲染时,我们可以使用 LaTeX 命令的子集来格式化这些注释中的文本。这允许在注释中合并样式文本、数学表达式和特殊格式。
LaTeX Formatting in Annotations Includes
以下是注释中的 LaTex 格式。我们逐个看一遍。
-
@ {s14} - 数学表达式使用 LaTeX 数学模式表示为分数、希腊字母、上标和下标。
-
@ {s15} - 文本样式包括使用 LaTeX 命令(如 \textbf{}、\textit{}、\underline{} 和字体大小命令)的粗体、斜体、下划线或不同的字体大小。
-
@ {s16} - 使用 LaTeX 转义序列转义美元符号、百分比符号或下划线等特殊字符。
-
@ {s17} - 虽然有限,但使用
\begin{flushleft}...\end{flushleft},
\begin{center}...\end{center},
\begin{flushright}...\end{flushright}.
以上我们已经浏览了 LaTeX 中提供的不同样式格式,现在让我们看看在标注中使用 LaTeX 的文本格式。
LaTeX Text Formatting in Annotations
以下是使用 LaTeX 在标注中进行各种文本格式化的方法。
Basic Text Formatting
可以在标注中使用 LaTeX 命令进行基本的文本格式化。以下是一些命令。
Bold − 使文本变粗
\textbf{Bold Text}
@ {s1} - 以上代码行可以在 Jupyter Notebook 标记模式中执行。
Italics − 使文本变斜体
\textit{Italic Text}
@ {s1} - 以上代码行可以在 Jupyter Notebook 标记模式中执行。
Underline − 给文本添加下划线
\underline{Underlined Text}
@ {s1} - 以上代码行可以在 Jupyter Notebook 标记模式中执行。
Font Size − LaTeX 提供了不同的字体大小命令,例如 \tiny、\small、\large、\Large、\huge、\Huge
Annotations with Bold text using LaTex
此示例中,我们在标注中使用 LaTeX 文本格式,使绘图上的文本看起来更粗。
Example
import matplotlib.pyplot as plt
# Create a simple plot
x = [1, 2, 3, 4]
y = [2, 5, 7, 10]
plt.plot(x, y, marker='o', linestyle='-')
# Add an annotation with LaTeX text formatting
plt.annotate(r'\textbf{Max Value}',
xy=(x[y.index(max(y))], max(y)),
xytext=(2.5, 8),
arrowprops=dict(facecolor='black', shrink=0.05),
fontsize=12,
color='blue',
bbox=dict(boxstyle='round,pad=0.3', edgecolor='blue', facecolor='lightblue'))
# Set axis labels and title
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Example Plot with LaTeX Annotation')
# Show the plot
plt.show()
这将生成以下方程式:
Mathematical Notation
在 LaTeX 中,数学符号中的文本格式化涉及在数学模式中使用命令和语法,在表达数学内容时为文本元素设置样式。它支持在数学表达式或等式中整合文本格式化功能。
Subscripts and Superscripts
在 LaTeX 中,下标和上标用于在数学表达式的基线下方或上方放置文本或符号。它们通常用于表示数学符号中的指数、指数或特殊标注。
Subscripts and Superscripts usage in Annotation of a plot
在这个示例中,我们使用 LaTex 通过绘图的注解来使用下标和上标用法。
import matplotlib.pyplot as plt
# Generating some data points
x = [1, 2, 3, 4]
y = [2, 5, 7, 10]
plt.plot(x, y, 'o-', label='Data')
# Annotating a point with a subscript and a superscript
plt.annotate(r'$\mathrm{Point}_{\mathrm{max}}^{(4, 10)}$',
xy=(x[y.index(max(y))], max(y)),
xytext=(3, 8),
arrowprops=dict(facecolor='black', arrowstyle='->'),
fontsize=12,
color='red')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Example Plot with Annotation')
plt.legend()
plt.show()
这将生成以下方程式:
Subscripts and Superscripts
可以使用“_”添加下标并使用“^”添加上标。在以下示例中我们显示脚本内容。
import matplotlib.pyplot as plt
import matplotlib as mpl
equation = r'$x_i^2$ denotes $x$ raised to the power of $i$ squared.'
plt.figure(figsize=(6, 3))
plt.text(0.5, 0.5, equation, fontsize=12, ha='center', va='center')
plt.axis('off')
plt.show()
这将显示以下方程式 −
我们也可以通过用花括号 {} 来封闭内容来嵌套下标和上标。在下面给出的示例中,我们显示嵌套下标。
import matplotlib.pyplot as plt
import matplotlib as mpl
equation = r'$x_{i_j}^{2k}$ represents a nested subscript and superscript.'
plt.figure(figsize=(6, 3))
plt.text(0.5, 0.5, equation, fontsize=12, ha='center', va='center')
plt.axis('off')
plt.show()
结果方程式如下 −
Using Commands
对于更复杂的表达式或者为了确保一致的格式化,我们可以使用 _ 的命令 \subscript{} 和 ^ 的命令*\superscript{}*,它由诸如 fixltx2e 的包提供。
在此示例中,我们显示复杂表达式。
import matplotlib.pyplot as plt
import matplotlib as mpl
equation = r'$x_{i}^{2}$'
plt.figure(figsize=(6, 3))
plt.text(0.5, 0.5, equation, fontsize=12, ha='center', va='center')
plt.axis('off')
plt.show()
结果方程式如下 −
LaTeX 提供了创建分数、下标和上标的简单方法,让我们能够准确有效地表示数学表达式。
Combining Text and Math using Latex on a plot
在本示例中,我们使用 LaTex 通过注释来结合文本和数学。
Example
import matplotlib.pyplot as plt
# Generating some data points
x = [1, 2, 3, 4]
y = [2, 5, 7, 10]
plt.plot(x, y, 'o-', label='Data')
# Annotating a point with combined text and math in LaTeX
plt.annotate(r'$\frac{dx}{dt} = \alpha \cdot x(t) + \beta$ is the differential equation',
xy=(x[2], y[2]),
xytext=(2, 6),
arrowprops=dict(facecolor='black', arrowstyle='->'),
fontsize=12,
color='blue')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Example Plot with Annotation by Latex')
plt.legend()
plt.show()
Combined Usage of text and font styles on annotations
В этом примере мы используем LaTex. \text для смены цвета текста и применения указанного стиля для аннотаций графика.
Example
import matplotlib.pyplot as plt
# Generating some data points
x = [1, 2, 3, 4]
y = [2, 5, 7, 10]
plt.plot(x, y, 'o-', label='Data')
# Annotating a point with different text color and font style
plt.annotate(r'\mathbf{\textcolor{red}{Max value:}} \ \textit{\textcolor{blue}{y_{\text{max}} = 10}}',
xy=(x[y.index(max(y))], max(y)),
xytext=(3, 8),
arrowprops=dict(facecolor='black', arrowstyle='->'),
fontsize=12)
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Example Plot with Annotation of color and font style')
plt.legend()
plt.show()
Important Points to be noted
-
Убедитесь, что LaTeX правильно интерпретирован в аннотациях Matplotlib с помощью префикса
r
перед строкой. -
Настройте цвета, стили шрифтов и другие параметры форматирования, необходимые для удовлетворения \text наших требований визуализации.
-
Используя команды LaTeX для цвета текста и стилей шрифтов в аннотациях Matplotlib, мы можем создавать визуально привлекательные и информативные аннотации в своих графиках. Настройка этих атрибутов помогает выделить важную информацию и улучшить общую эстетику визуализации.
Наконец, мы можем заявить, что, используя LaTeX в аннотациях Matplotlib, мы можем обогащать наши графики и фигуры форматированным текстом, математическими обозначениями и стилизованными метками, что позволяет создавать более четкие и информативные визуализации.
Bold font weight for LaTeX axes label
В этом примере мы устанавливаем для метки оси LaTeX полужирный вес шрифта.
import numpy as np
from matplotlib import pyplot as plt, font_manager as fm
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
plt.rcParams["font.fantasy"] = "Comic Sans MS"
x = np.array([1, 2, 3, 4])
y = np.exp(x)
ax1 = plt.subplot()
ax1.set_xticks(x)
ax1.set_yticks(y)
ax1.plot(x, y, c="red")
ax1.set_xticklabels([r"$\bf{one}$", r"$\bf{two}$", r"$\bf{three}$",
r"$\bf{four}$"], rotation=45)
ax1.set_yticklabels([r"$\bf{:.2f}$".format(y[0]), r"$\bf{:.2f}$".format(y[1]),
r"$\bf{:.2f}$".format(y[2]), r"$\bf{:.2f}$".format(y[3])], rotation=45)
plt.tight_layout()
plt.show()
Приведенный выше код создаст следующий вывод —
Format a float using matplotlib’s LaTeX formatter
Здесь, в этом примере, мы форматируем float, используя форматтер Latex от matplotlib.
import numpy as np
from matplotlib import pyplot as plt
# Set the figures size
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
# x and y data points
x = np.linspace(-5, 5, 100)
y = x**3/3
# Plot the data points
plt.plot(x, y)
# Fill the area between the curve
plt.fill_between(x, y)
# LaTex representation
plt.title("$area=\int_a^b{x^2dx}$=83.3")
# Display the plot
plt.show()
这将生成以下方程式:
Obtain the same font in Matplotlib output as in LaTex output
Здесь, в этом примере, мы форматируем float, используя форматтер Latex от matplotlib.
import numpy as np
from matplotlib import pyplot as plt
# Set the figures size
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
# x and y data points
x = np.linspace(-5, 5, 100)
y = x**3/3
# Plot the data points
plt.plot(x, y)
# Fill the area between the curve
plt.fill_between(x, y)
# LaTex representation
plt.title("$area=\int_a^b{x^2dx}$=83.3")
# Display the plot
plt.show()
这将生成以下方程式:
What is LaTex Rendering?
LaTeX 渲染是指将包含排版指令和命令的 LaTeX 标记语言转换为格式化输出的过程。此输出通常是高质量文档、数学公式、科学论文或具有精确且一致排版的技术报告。
LaTeX 渲染广泛应用于学术界、科学研究、技术文档和出版中,因为它具有强大的排版功能,并且能够生成专业外观的文档。
Key Aspects of LaTeX Rendering
-
Typesetting - LaTeX 以其卓越的排版功能而闻名,确保了学术和技术内容的专业级文档格式。
-
Mathematical Formulas - LaTeX 因其在排版复杂数学方程方面的出色支持而被广泛使用,使其成为学术和科学出版的首选。
-
Markup Language - LaTeX 使用标记语言,其中用户使用纯文本编写文档,并包含命令以指定格式、结构和内容。
-
Compilation - LaTeX 源代码需要使用 LaTeX 编译器(如 pdflatex、xelatex、lualatex)进行编译。在编译过程中,编译器解释 LaTeX 命令,并生成各种格式(如 PDF、DVI 或 PostScript)的最终输出。
-
Customization - LaTeX 允许用户创建自定义样式、模板和包,从而能够精确控制文档格式和布局。
Benefits of LaTeX Rendering
-
Quality and Consistency - LaTeX 确保在各种平台和设备上进行高质量和一致的文档格式。
-
Mathematical Typesetting - 它擅长处理复杂的数学符号,使其对于科学和数学内容不可或缺。
-
Cross-Platform Compatibility - LaTeX 文档可以在不同的操作系统上轻松编译和查看。
-
Version Control - 基于纯文本的源文件简化了版本控制系统,使协作和文档历史管理变得更加容易。
Enabling Latex Rendering
为了启用 LaTeX 渲染以便创建文档、公式或注释,我们通常需要以下内容。
-
LaTeX Installation - Установите дистрибутив LaTeX, такой как TeX Live, MiKTeX или MacTeX, который включает в себя необходимый компилятор и пакеты LaTeX.
-
Text Editor - Выберите текстовый редактор или интегрированную среду разработки (IDE), которая поддерживает LaTeX, например TeXstudio, TeXworks, Overleaf или редакторы вроде Sublime Text, VS Code или Atom с плагинами/расширениями LaTeX.
-
Write LaTeX Code - Создайте .tex файл и напишите код LaTeX, используя соответствующие команды и синтаксис для структурирования нашего документа, включая уравнения или форматирование текста.
-
Compilation - Используйте компилятор LaTeX для компиляции .tex файла в желаемый выходной формат, например: PDF, DVI, PS. Запустите соответствующую команду в терминале или используйте встроенные функции выбранного редактора/IDE.
LaTeX Rendering in Matplotlib for Annotations
Для аннотаций Matplotlib, использующих LaTeX для форматирования текста в пределах графиков, мы должны выполнить указанные ниже задачи:
-
- Matplotlib 支持使用文本注释或类似函数中的 LaTeX 语法进行 LaTeX 注释。
-
- 确保我们的系统上有 Matplotlib 能够访问的 LaTeX 安装程序,以渲染注释中的 LaTeX 文本。
-
Correct Syntax - Используйте правильный синтаксис LaTeX r'$…​$' в функциях Matplotlib для аннотаций, чтобы отобразить нужный текст в формате LaTeX.
-
通过遵循上述步骤,我们可以出于多种目的启用 LaTeX 渲染,如文档创建、数学符号或可视化库(如 Matplotlib)中的注释。
Example
在此示例中,我们将在绘图的注释中使用 LaTex 渲染。
import matplotlib.pyplot as plt
# Sample data
x = [1, 2, 3, 4]
y = [2, 5, 7, 10]
plt.plot(x, y, 'o-', label='Data')
# Annotating a point with LaTeX-rendered text
plt.annotate(r'$\sum_{i=1}^{4} y_i$', # LaTeX expression within the annotation
xy=(x[2], y[2]), # Coordinates of the annotation point
xytext=(2.5, 6), # Text position
arrowprops=dict(facecolor='black', arrowstyle='->'),
fontsize=12,
color='green')
# Labeling axes and title
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Plot with LaTeX rendering in Annotation')
plt.legend()
plt.show()
这会产生以下输出 −
Example
这里有另一个在绘图注释中使用 LaTex 渲染的示例。
import matplotlib.pyplot as plt
# Generating some data points
x = [1, 2, 3, 4]
y = [2, 5, 7, 10]
plt.plot(x, y, 'o-', label='Data')
# Annotating a point with LaTeX rendering
plt.annotate(r'\textbf{Max Value}',
xy=(x[y.index(max(y))], max(y)),
xytext=(2.5, 8),
arrowprops=dict(facecolor='black', shrink=0.05),
fontsize=12,
color='white',
bbox=dict(boxstyle='round,pad=0.3', edgecolor='red', facecolor='green'))
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Example Plot with LaTeX Annotation')
plt.legend()
plt.show()
这将生成以下方程式:
Axis tick font in a Matplotlib plot using LaTex
这是使用 LaTeX 渲染时更改 matplotlib 中刻度标签字体的一个示例。
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
x = np.array([1, 2, 3, 4])
y = np.exp(x)
ax1 = plt.subplot()
ax1.set_xticks(x)
ax1.set_yticks(y)
ax1.plot(x, y, c="red")
ax1.set_xticklabels([r"$\bf{one}$", r"$\bf{two}$", r"$\bf{three}$", r"$\bf{four}$"], rotation=45)
ax1.set_yticklabels([r"$\bf{:.2f}$".format(y[0]), r"$\bf{:.2f}$".format(y[1]),
r"$\bf{:.2f}$".format(y[2]), r"$\bf{:.2f}$".format(y[3])], rotation=45)
plt.tight_layout()
plt.show()
这会产生以下输出 −