Matplotlib 简明教程

Matplotlib - Text properties

Matplotlib 中的 Text properties 是指可以配置来控制图中文本元素的外观和布局的一组属性。这些属性包含各种特性,例如 -

  1. font style

  2. color

  3. size

  4. alignment, and more.

通过操纵这些属性,你可以定制图中文本的可视化方面。

控制 Matplotlib 中的文本属性和布局涉及配置 matplotlib.text.Text 实例的各种属性。可以通过 set_title、set_xlabel 和 text 等函数中的关键字参数调整这些属性。

下面,我们将探讨 Matplotlib 中的关键文本属性以及示例。

Text layout and positioning properties

文本布局和定位是将文本元素放置和对齐在图中的关键方面。下表列出了属性及其详细信息。

  1. Position − 指定放置文本的坐标 (x, y)。

  2. Rotation − 定义文本的旋转角度。选项包括度数、“垂直”或“水平”。

  3. Horizontal Alignment (ha) − 指定文本沿 x 轴的对齐方式。选项包括“居中”、“右”和“左”。

  4. Vertical Alignment (va) − 控制文本沿 y 轴的对齐方式。选项包括“居中”、“顶部”、“底部”和“基线”。

  5. Multialignment − 对于换行符分隔的字符串,此属性控制不同行的左对齐、居中对齐或右对齐。

Example

此示例演示了应用各种布局和定位属性。

import matplotlib.pyplot as plt

# Create a figure
fig, ax = plt.subplots(figsize=(7, 4))

# Set the axis limits
plt.axis((0, 10, 0, 10))

# Add text with various layout and positioning properties
ax.text(5, 7, 'Centered Text with 0 rotation', horizontalalignment='center', verticalalignment='center', rotation=0)
ax.text(1, 5, 'Right Aligned Text with 90 degrees rotation', ha='right', va='center', rotation=90)
ax.text(9, 5, 'Left Aligned Text with -90 degrees rotation', ha='left', va='center', rotation=-90)
ax.text(5, 2, 'Multiline\nText', ha='center', va='center', multialignment='center')

# Display the plot
plt.show()
print('Text is added successfully with the various layout and positioning properties..')

执行上述代码,我们将得到以下输出 −

test properties ex1
Text is added successfully with the various layout and positioning properties..

Text color and transparency properties

颜色和透明度属性增强了绘图中文本元素的视觉外观。

  1. color − 指定文本的颜色。这可以是任何有效的 matplotlib 颜色。

  2. backgroundcolor − 定义文本后面的背景颜色。可以使用任何有效的 matplotlib 颜色设置它。

  3. alpha − 表示文本的透明度。它被指定为一个浮点数,其中 0.0 是完全透明,而 1.0 是完全不透明。

Example

此示例演示如何在 Matplotlib 中使用颜色和透明度属性。

import matplotlib.pyplot as plt

# Create a figure
fig, ax = plt.subplots(figsize=(7, 4))

# Set the axis limits
plt.axis((0, 10, 0, 10))

# Add text with color and transparency properties
ax.text(3, 8, 'Plain text without any property')
ax.text(3, 6, 'Colored Text', color='blue')
ax.text(3, 4, 'Background Color', backgroundcolor='yellow')
ax.text(3, 2, 'Transparent Text', alpha=0.5)

# Display the plot
plt.show()
print('Text added successfully...')

执行上述代码,我们将得到以下输出 −

test properties ex2
Text added successfully...

Different font properties

字体属性对于自定义绘图中文本元素的外观至关重要。这些属性允许控制用于渲染文本的字体的类型、风格、粗细、大小、变体和名称。

  1. Family − 指定要使用的字体类型,例如“衬线体”、“非衬线体”或“等宽字体”。

  2. Style or Fontstyle − 确定字体的样式,选项包括“正常”、“斜体”或“倾斜”。

  3. Weight or Fontweight − 字体的粗细或加粗程度。选项包括“正常”、“粗体”、“加重”、“轻”、“超粗体”和“超细体”。

  4. Size or Fontsize − 指定字体的大小,单位为磅或“较小”或“特大号”等相对大小。

  5. Name or Fontname − 将字体的名称定义为字符串。示例包括“Sans”、“Courier”、“Helvetica”等。

  6. Variant − 描述字体变体,选项包括“正常”或“小写大写”。

Example

此示例演示如何使用各种字体属性自定义 Matplotlib 中文本的外观。

import matplotlib.pyplot as plt

# Create a figure
fig = plt.figure(figsize=(7, 4))

# Set the axis limits
plt.axis((0, 10, 0, 10))

# Define a long string
sample_text = ("Tutorialspoint")

# Add text at various locations with various configurations
plt.text(0, 9, 'Oblique text placed at the center with a 25-degree rotation',
   fontstyle='oblique', fontweight='heavy', ha='center', va='baseline', rotation=45, wrap=True)
plt.text(7.5, 0.5, 'Text placed at the left with a 45-degree rotation', ha='left', rotation=45, wrap=True)
plt.text(5, 5, sample_text + '\nMiddle', ha='center', va='center', color='green', fontsize=24)
plt.text(10.5, 7, 'Text placed at the right with a -45-degree rotation', ha='right', rotation=-45, wrap=True)
plt.text(5, 10, 'Sans text with oblique style is placed at the center', fontsize=10, fontname='Sans',
   style='oblique', ha='center', va='baseline', wrap=True)
plt.text(6, 3, 'A serif family text is placed right with the italic style', family='serif',
   style='italic', ha='right', wrap=True)
plt.text(-0.5, 0, 'Small-caps variant text is placed at the left with a -25-degree rotation',
   variant='small-caps', ha='left', rotation=-25, wrap=True)

# Display the plot
plt.show()
print('Text added successfully...')

执行上述代码,我们将得到以下输出 −

test properties ex3
Text added successfully...

The bounding box and Clipping Properties

边界框和裁剪属性用于控制绘图中文本元素的布局和可见性。这些属性包括为文本指定边界框、定义裁剪参数以及启用或禁用裁剪。

  1. Bbox − 为文本定义边界框。它包含颜色、填充等属性。

  2. Clip Box and Clip Path − 指定边界框或路径以裁剪文本。这些属性允许你控制文本可见区域。

  3. Clip On − 布尔值,指示是否启用裁剪。设置为 True 时,文本将裁剪到指定区域。

Example

此示例演示了在向绘图添加文本时使用边界框和裁剪属性。

import matplotlib.pyplot as plt

# Create a figure
fig = plt.figure(figsize=(7, 4))

# Set the axis limits
plt.axis((0, 10, 0, 10))

# Add text with bounding box and clipping properties
plt.text(3, 7, 'Text with Bounding Box', bbox={'facecolor': 'yellow', 'edgecolor': 'blue', 'pad': 5})
plt.text(3, 5, 'Clipped Text', bbox={'facecolor': 'lightgreen', 'edgecolor': 'darkgreen', 'pad': 5}, clip_on=True)

# Display the plot
plt.show()
print('Text added successfully...')

执行上述代码,我们将得到以下输出 −

test properties ex4
Text added successfully...

Other Properties

matplotlib 还提供了其他属性,如 Label、Linespacing、picker 等。