Matplotlib 简明教程

Matplotlib - LaTeX Text Formatting in Annotations

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}

Italics − 使文本变斜体

\textit{Italic Text}

Underline − 给文本添加下划线

\underline{Underlined Text}

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()

执行上述代码时,您将获得以下输出 -

textformat latex

Mathematical Notation

在 LaTeX 中,数学符号中的文本格式化涉及在数学模式中使用命令和语法,在表达数学内容时为文本元素设置样式。它支持在数学表达式或等式中整合文本格式化功能。

Basic Text Formatting within Mathematical Notation

数学符号中的基本文本格式如下。

此文本格式使封闭文本在数学表达式中变粗。

\mathbf{Bold Text}

斜体文本在数学表达式中以斜体显示封闭文本。

\textit{Italic Text}

此文本格式在数学模式中文本以无衬线字体样式显示封闭文本。

\textsf{Sans-serif Text}

此文本格式在数学模式下以打字机或等宽字体显示封闭文本。

\texttt{Typewriter Text}

Important points to remember

  1. 可以使用 \text{} 或数学模式中的特定格式化命令来实现数学符号中的文本格式。

  2. 某些格式化命令可能不适用于所有数学环境,或者可能需要其他软件包或配置。

  3. LaTeX 提供了各种文本格式选项,这些选项可以在数学表达式中使用,以增强基于文本的内容的显示效果。

  4. 通过在数学符号中使用文本格式命令,LaTeX 允许在数学表达式中整合样式文本元素,以帮助提高数学内容的清晰度和视觉吸引力。

Subscripts and Superscripts

在 LaTeX 中,下标和上标用于在数学表达式的基线下方或上方放置文本或符号。它们通常用于表示数学符号中的指数、指数或特殊标注。

Subscripts

下标用于创建下标,在 LaTeX 中我们可以使用下划线 _

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()

执行上述代码时,您将获得以下输出 -

mathformat latex

Important points to remember

  1. 下标和上标可以在 LaTeX 数学符号中独立使用或组合使用。

  2. 它们对于表示变量、指标、指数和其他相关的数学注解来说至关重要。

  3. LaTeX 会基于数学表达式中的上下文和周围元素自动处理下标和上标的位置和大小。

  4. 通过在 LaTeX 中使用下标和上标,我们可以精确地表达数学公式和符号,提高数学内容的清晰度和可读性。

Combining Text and Math

在注释中结合文本和数学涉及以连贯且视觉上有效的方式将常规文本和数学表达式嵌入到注释中。

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()

执行上述代码时,您将获得以下输出 -

combination math txt

Text Color and Font Styles

在 Matplotlib 中的 LaTeX 注释中,我们可以使用 LaTeX 命令设置文本颜色和字体样式以增强注释的视觉外观。

Text Color

要在 LaTeX 注释中设置文本颜色,我们可以使用诸如以下内容的 LaTeX 颜色命令:

\textcolor{color_name}{text}

Font styles

以下是在绘图注释中应用的不同字体样式。

Bold Text − 通过使用命令 \textbf{} 来显示粗体文本。

Italics − 为了显示斜体文本,我们可以使用 \textit{}

Underline - 如要 подчеркнуть текст, \text мы используем \underline{} .

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()

执行上述代码时,您将获得以下输出 -

text fontstyle

Important Points to be noted

  1. Убедитесь, что LaTeX правильно интерпретирован в аннотациях Matplotlib с помощью префикса r перед строкой.

  2. Настройте цвета, стили шрифтов и другие параметры форматирования, необходимые для удовлетворения \text наших требований визуализации.

  3. Используя команды LaTeX для цвета текста и стилей шрифтов в аннотациях Matplotlib, мы можем создавать визуально привлекательные и информативные аннотации в своих графиках. Настройка этих атрибутов помогает выделить важную информацию и улучшить общую эстетику визуализации.

最后,我们可以说通过在 Matplotlib 的注释内使用 LaTeX,我们可以通过允许更清晰和更具信息性的可视化,使用格式化的文本、数学符号和程式化的标签来丰富我们的图表和图像。

Bold font weight for LaTeX axes label

В этом примере мы устанавливаем для метки оси LaTeX полужирный вес шрифта.

Example

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()

执行上述代码时,您将获得以下输出 -

bold latex

Format a float using matplotlib’s LaTeX formatter

Здесь, в этом примере, мы форматируем float, используя форматтер Latex от matplotlib.

Example

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()

执行上述代码时,您将获得以下输出 -

float latex

Obtain the same font in Matplotlib output as in LaTex output

Здесь, в этом примере, мы форматируем float, используя форматтер Latex от matplotlib.

Example

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()

执行上述代码时,您将获得以下输出 -

float latex