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 的文本格式。
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()
执行上述代码时,您将获得以下输出 -
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, мы можем создавать визуально привлекательные и информативные аннотации в своих графиках. Настройка этих атрибутов помогает выделить важную информацию и улучшить общую эстетику визуализации.
最后,我们可以说通过在 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()
执行上述代码时,您将获得以下输出 -
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()
执行上述代码时,您将获得以下输出 -
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()
执行上述代码时,您将获得以下输出 -