Matplotlib 轴标签和标题基础设置
轴标签和标题是图表的重要组成部分,用于说明数据的含义。Matplotlib 提供了简单的方法来设置这些元素。
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
plt.xlabel('X轴标签', fontsize=12)
plt.ylabel('Y轴标签', fontsize=12)
plt.title('示例图表标题', fontsize=14)
plt.show()
自定义轴标签和标题样式
可以通过各种参数来自定义标签和标题的样式,包括字体大小、颜色和字体样式等。
plt.plot(x, y)
plt.xlabel('X轴标签', fontsize=14, color='blue', fontweight='bold')
plt.ylabel('Y轴标签', fontsize=14, color='red', fontstyle='italic')
plt.title('自定义样式的标题', fontsize=16, color='green', pad=20)
plt.show()
使用 LaTeX 渲染数学公式
Matplotlib 支持 LaTeX 语法,可以在标签和标题中使用数学公式。
plt.plot(x, y)
plt.xlabel('$x$', fontsize=14)
plt.ylabel('$sin(x)$', fontsize=14)
plt.title('函数 $y = sin(x)$ 的曲线', fontsize=16)
plt.show()
调整标签和标题位置
可以通过额外的参数调整标签和标题的位置,确保它们不会与其他图表元素重叠。
plt.plot(x, y)
plt.xlabel('X轴标签', fontsize=12, labelpad=10)
plt.ylabel('Y轴标签', fontsize=12, labelpad=15)
plt.title('调整位置的标题', fontsize=14, pad=20)
plt.show()
多子图情况下的轴标签和标题
当使用多个子图时,需要为每个子图单独设置轴标签和标题。
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 4))
ax1.plot(x, y)
ax1.set_xlabel('X轴标签1', fontsize=12)
ax1.set_ylabel('Y轴标签1', fontsize=12)
ax1.set_title('子图1标题', fontsize=14)
ax2.plot(x, np.cos(x))
ax2.set_xlabel('X轴标签2', fontsize=12)
ax2.set_ylabel('Y轴标签2', fontsize=12)
ax2.set_title('子图2标题', fontsize=14)
plt.tight_layout()
plt.show()
使用标题和标签的高级布局
在复杂图表中,可能需要更灵活地控制标题和标签的布局。
fig = plt.figure(figsize=(10, 6))
ax = fig.add_subplot(111)
ax.plot(x, y)
ax.set_xlabel('X轴标签', fontsize=12, position=(0.5, 0.02))
ax.set_ylabel('Y轴标签', fontsize=12, position=(0.02, 0.5))
ax.set_title('主标题', fontsize=16, pad=20, loc='left')
plt.show()
旋转轴标签
当轴标签文字较长时,可以旋转标签以避免重叠。
categories = ['非常长的类别名称1', '非常长的类别名称2', '非常长的类别名称3']
values = [10, 20, 15]
plt.bar(categories, values)
plt.xlabel('类别', fontsize=12)
plt.ylabel('值', fontsize=12)
plt.xticks(rotation=45, ha='right')
plt.title('旋转轴标签示例', fontsize=14)
plt.tight_layout()
plt.show()
使用不同的字体
可以指定特定的字体来增强图表的视觉效果。
plt.plot(x, y)
plt.xlabel('X轴标签', fontsize=12, fontname='Times New Roman')
plt.ylabel('Y轴标签', fontsize=12, fontname='Times New Roman')
plt.title('使用不同字体的标题', fontsize=14, fontname='Arial')
plt.show()
添加副标题
虽然 Matplotlib 没有直接的副标题功能,但可以通过调整位置来添加。
plt.plot(x, y)
plt.xlabel('X轴标签', fontsize=12)
plt.ylabel('Y轴标签', fontsize=12)
plt.title('主标题', fontsize=16, pad=20)
plt.suptitle('副标题', fontsize=12, y=0.92)
plt.show()
全局标题和轴标签
在使用多个子图时,可以添加全局标题和轴标签。
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 4))
ax1.plot(x, y)
ax2.plot(x, np.cos(x))
fig.text(0.5, 0.95, '全局标题', ha='center', fontsize=16)
fig.text(0.5, 0.02, '全局X轴标签', ha='center', fontsize=12)
fig.text(0.02, 0.5, '全局Y轴标签', va='center', rotation='vertical', fontsize=12)
plt.tight_layout()
plt.show()