图标签:suptitle, supxlabel, supylabel #

每个轴都可以有一个标题(或者实际上是三个 - 一个分别带有loc “left”、“center”和“right”),但有时需要给出一个完整的图形(或SubFigure)一个整体标题,使用FigureBase.suptitle.

FigureBase.supxlabel我们还可以使用和 添加图形级别的 x 和 y 标签FigureBase.supylabel

from matplotlib.cbook import get_sample_data
import matplotlib.pyplot as plt

import numpy as np


x = np.linspace(0.0, 5.0, 501)

fig, (ax1, ax2) = plt.subplots(1, 2, constrained_layout=True, sharey=True)
ax1.plot(x, np.cos(6*x) * np.exp(-x))
ax1.set_title('damped')
ax1.set_xlabel('time (s)')
ax1.set_ylabel('amplitude')

ax2.plot(x, np.cos(6*x))
ax2.set_xlabel('time (s)')
ax2.set_title('undamped')

fig.suptitle('Different types of oscillations', fontsize=16)
不同类型的振荡,有阻尼的,无阻尼的
Text(0.5, 0.99131875, 'Different types of oscillations')

可以使用FigureBase.supxlabelFigureBase.supylabel方法设置全局 x 或 y 标签。

fig, axs = plt.subplots(3, 5, figsize=(8, 5), constrained_layout=True,
                        sharex=True, sharey=True)

fname = get_sample_data('percent_bachelors_degrees_women_usa.csv',
                        asfileobj=False)
gender_degree_data = np.genfromtxt(fname, delimiter=',', names=True)

majors = ['Health Professions', 'Public Administration', 'Education',
          'Psychology', 'Foreign Languages', 'English',
          'Art and Performance', 'Biology',
          'Agriculture', 'Business',
          'Math and Statistics', 'Architecture', 'Physical Sciences',
          'Computer Science', 'Engineering']

for nn, ax in enumerate(axs.flat):
    ax.set_xlim(1969.5, 2011.1)
    column = majors[nn]
    column_rec_name = column.replace('\n', '_').replace(' ', '_')

    line, = ax.plot('Year', column_rec_name, data=gender_degree_data,
                    lw=2.5)
    ax.set_title(column, fontsize='small', loc='left')
    ax.set_ylim([0, 100])
    ax.grid()
fig.supxlabel('Year')
fig.supylabel('Percent Degrees Awarded To Women')

plt.show()
卫生专业、公共管理、教育、心理学、外语、英语、艺术与表演、生物学、农业、商业、数学与统计、建筑、物理科学、计算机科学、工程

脚本总运行时间:(0分2.878秒)

由 Sphinx-Gallery 生成的画廊