5

我有一个类似格子的情节,我试图在 matplotlib 中制作。这是我要做什么的草图:

在此处输入图像描述

我遇到的一件事是为每一行获取一个共享的行标签。即在我的情节中,我有四行用于四组不同的实验,所以我想要行标签“1 个源节点、2 个源节点、4 个源节点和 8 个源节点”。

请注意,我不是指用于标记因变量的 y轴标签。因变量在所有子图中都是相同的,但我所使用的标签用于描述所进行的四类实验,每行一个。

目前,我正在生成情节:

fig, axes = plt.subplots(4, 5, sharey=True)

虽然我找到了大量关于共享 y 轴标签的信息,但我没有找到任何关于添加单个共享行标签的信息。

4

2 回答 2

4

据我所知,没有ytitle或什么的。您可以使用text显示一些文本。和在数据坐标中x。和分别是水平和垂直对齐。yhava

import numpy
import matplotlib 
import matplotlib.pyplot as plt

n_rows = 4
n_cols = 5
fig, axes = plt.subplots(n_rows, n_cols, sharey = True)

axes[0][0].set_ylim(0,10)

for i in range(n_cols):
    axes[0][i].text(x = 0.5, y = 12, s = "column label", ha = "center")
    axes[n_rows-1][i].set_xlabel("xlabel")

for i in range(n_rows):
    axes[i][0].text(x = -0.8, y = 5, s = "row label", rotation = 90, va = "center")
    axes[i][0].set_ylabel("ylabel")

plt.show()
于 2013-04-07T14:59:40.743 回答
0

您可以像 Robbert 建议的那样为顶行的子图赋予标题

fig, axes = plt.subplots(4,3)

for i, ax in enumerate(axes[0,:]):
    ax.set_title('col%i'%i)
于 2016-09-16T14:35:19.220 回答