我想在matplotlib中制作一个类似格子的情节。这是我想要的草图:
我遇到的一件事就是为每一行获取一个共享行标签。即在我的情节中,我有四行用于四组不同的实验,所以我想要行标签“1个源节点,2个源节点,4个源节点和8个源节点”。
请注意,我不引用y 轴标签,该标签用于标记因变量。因变量在所有子图中都是相同的,但我所遵循的行标签是描述四类实验,每行一个。
目前,我正在制作情节:
fig, axes = plt.subplots(4, 5, sharey=True)
虽然我发现了很多关于共享y轴标签的信息,但我没有找到任何关于添加单个共享行标签的信息。
答案 0 :(得分:4)
据我所知,没有ytitle
或其他东西。您可以使用text
来显示一些文字。 x
和y
位于数据坐标中。 ha
和va
分别是水平和垂直对齐。
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()
答案 1 :(得分:0)
你可以像Robbert建议的那样给最上一行的子图提供标题
fig, axes = plt.subplots(4,3)
for i, ax in enumerate(axes[0,:]):
ax.set_title('col%i'%i)