Matplotlib - 文本属性



Matplotlib 中的文本属性指的是一组可以配置的属性,用于控制绘图中文本元素的外观和布局。这些属性包括各种特性,例如:

  • 字体样式
  • 颜色
  • 大小
  • 对齐方式等等。

通过操纵这些属性,您可以自定义绘图中文本的视觉效果。

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

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

文本布局和定位属性

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

  • 位置 - 指定放置文本的坐标 (x, y)。

  • 旋转 - 定义文本的旋转角度。选项包括度数、'vertical' 或 'horizontal'。

  • 水平对齐 (ha) - 确定文本沿 x 轴的对齐方式。选项包括 'center'、'right' 和 'left'。

  • 垂直对齐 (va) - 控制文本沿 y 轴的对齐方式。选项包括 'center'、'top'、'bottom' 和 'baseline'。

  • 多行对齐 - 对于换行符分隔的字符串,此属性控制不同行的左、中或右对齐。

示例

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

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 Example 1
Text is added successfully with the various layout and positioning properties..

文本颜色和透明度属性

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

  • color - 指定文本的颜色。这可以是任何有效的 matplotlib 颜色。

  • backgroundcolor - 定义文本后面的背景颜色。可以使用任何有效的 matplotlib 颜色进行设置。

  • alpha - 表示文本的透明度。它指定为浮点数,其中 0.0 表示完全透明,1.0 表示完全不透明。

示例

此示例演示如何在 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 Example 2
Text added successfully...

不同的字体属性

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

  • Family - 指定要使用的字体类型,例如 'serif'、'sans-serif' 或 'monospace'。

  • Style 或 Fontstyle - 确定字体的样式,选项包括 'normal'、'italic' 或 'oblique'。

  • Weight 或 Fontweight - 字体的粗细或粗体。选项包括 'normal'、'bold'、'heavy'、'light'、'ultrabold' 和 'ultralight'。

  • Size 或 Fontsize - 指定字体的磅值大小或相对大小,例如 'smaller' 或 'x-large'。

  • Name 或 Fontname - 将字体的名称定义为字符串。示例包括 'Sans'、'Courier'、'Helvetica' 等等。

  • Variant - 描述字体变体,选项包括 'normal' 或 'small-caps'。

示例

此示例演示如何使用各种字体属性来自定义 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 Example 3
Text added successfully...

边界框和裁剪属性

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

  • Bbox - 为文本定义边界框。它包括颜色、填充等属性。

  • Clip Box 和 Clip Path - 指定用于裁剪文本的边界框或路径。这些属性允许您控制文本可见的区域。

  • Clip On - 一个布尔值,指示是否启用了裁剪。设置为 True 时,文本将被裁剪到指定的区域。

示例

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

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 Example 4
Text added successfully...

其他属性

Matplotlib 还提供其他属性,例如 Label、Linespacing、picker 等。

广告