在matplotlib中使用函数子批次的ylabel

在matplotlib中使用函数子批次的ylabel,matplotlib,subplot,Matplotlib,Subplot,我最近发现了函数子地块,这似乎是一种比子地块更优雅的设置多个子地块的方法。但是,我似乎无法更改每个子地块的轴的属性 import matplotlib.pyplot as plt import matplotlib as mpl import numpy as npx = np.linspace(0, 20, 100) fig, axes = plt.subplots(nrows=2) for i in range(10): axes[0].plot(x, i * (x - 10)*

我最近发现了函数子地块,这似乎是一种比子地块更优雅的设置多个子地块的方法。但是,我似乎无法更改每个子地块的轴的属性

import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as npx = np.linspace(0, 20, 100)

fig, axes = plt.subplots(nrows=2)

for i in range(10):
    axes[0].plot(x, i * (x - 10)**2)
    plt.ylabel('plot 1')

for i in range(10):
    axes[1].plot(x, i * np.cos(x))
    plt.ylabel('plot 2')

plt.show()
仅显示最后一个绘图的ylabel。xlabel、xlim和ylim也是如此

我意识到使用子地块的目的是创建子地块的通用布局,但是如果sharex和sharey设置为false,那么我是否可以更改一些参数

一种解决方案是使用子地块函数,但我需要这样做吗?

您可能希望使用单个子地块实例

正如您所发现的,
plt.ylabel
设置最后一个活动绘图的ylabel。要更改单个
轴的参数,即子批次,可以使用。要更改ylabel,可以使用轴[0]。设置ylabel(“绘图1”)

pyplot
,或您定义的
plt
,是一个辅助模块,用于快速访问
方法,而无需将这些对象存储在变量中。作为:

[Pyplot p]提供了一个类似于MATLAB的绘图框架


您仍然可以使用此界面,但需要调整当前处于活动状态的轴。为此,
pyplot
有一个方法,其中
h
轴的一个实例。因此,在您的示例中,您可以调用
plt.axes(axes[0])
将第一个子批次设置为活动,然后调用
plt.axes(axes[1])
设置另一个子批次

您可能希望将
plt.ylabel
调用移到循环之外。它们都是相同的,每个子批只需要调用一次。