在同一轴上绘制多个标签

Gab*_*iel 3 python matplotlib

考虑一个简单的绘图,其中绘制了两个不同的群体:

在此输入图像描述

我想添加两个单独的 y 标签,一个用于顶部人口,另一个用于同一左侧 y 轴上的下方人口。我见过的所有类似问题都涉及两个单独轴上的标签(即:一个在左边,一个在右边),这不是我需要的。

我怎样才能做到这一点?

import numpy as np
import matplotlib.pyplot as plt

N = 50
a = np.random.uniform(100., 120., N)
b = np.random.uniform(10., 20., N)

plt.scatter(range(N), a)
plt.scatter(range(N), b)
plt.show()
Run Code Online (Sandbox Code Playgroud)

这个问题不是关于向图例添加标签,如此处所述。

Imp*_*est 6

您可能会误用 y 轴的小刻度来将标签放置在这些位置。在这里,我们可以取数据的平均值来创建小刻度。可以关闭勾号,并且可以填充、旋转和对齐标签,使其看起来与通常的 ylabel 类似。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as mticker

N = 50
a = np.random.uniform(100., 120., N)
b = np.random.uniform(10., 20., N)

plt.scatter(range(N), a)
plt.scatter(range(N), b)

ax = plt.gca()
ax.yaxis.set_minor_locator(mticker.FixedLocator((a.mean(), b.mean())))
ax.yaxis.set_minor_formatter(mticker.FixedFormatter(("Label A", "Label B")))
plt.setp(ax.yaxis.get_minorticklabels(), rotation=90, size=15, va="center")
ax.tick_params("y",which="minor",pad=25, left=False)


plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述