创建一个没有轴但有标题和 y 标签的子图
Create a subplot without axis but with title and y label
我正在尝试创建一个轴关闭的子图,但我想包括标签。这是我的代码。我在某处读到,如果我这样做 plt.axis('off')
它甚至会隐藏标签。有什么解决方法吗?这是我的代码。
fig, ax = plt.subplots(3, 10, figsize=(20,7))
i = 0
for row in range(3):
for col in range(10):
if row == 0:
ax[row][col].imshow(final[i])
ax[row][col].set_title(temp_df.columns[col])
ax[row][col].tick_params(top='off', bottom='off', left='off', right='off', labelleft='on', labelbottom='off')
ax[row][col].imshow(final[i])
# ax[row][col].axis('off')
# ax[row][col].tick_params(axis='both', which='both',length=0)
if col == 0:
ax[row][col].set_ylabel(str(cols[row]))
i += 1
生成的子图快照:
如何生成轴关闭的绘图并在绘图中添加标签?
如果我理解正确,您可以通过将空列表传递给 ax.set_xticks
和 ax.set_yticks
:
来删除轴刻度
ax[row][col].set_xticks([])
ax[row][col].set_yticks([])
完整代码
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots(3, 10, figsize = (20, 7))
for row in range(3):
for col in range(10):
if row == 0:
ax[row][col].set_title('your title')
ax[row][col].tick_params(top = 'off', bottom = 'off', left = 'off', right = 'off', labelleft = 'on', labelbottom = 'on')
ax[row][col].imshow(np.random.randint(0, 10, (10, 10)))
ax[row][col].set_xticks([])
ax[row][col].set_yticks([])
ax[row][col].set_xlabel('x label')
if col == 0:
ax[row][col].set_ylabel(f'row = {row}')
plt.show()
我正在尝试创建一个轴关闭的子图,但我想包括标签。这是我的代码。我在某处读到,如果我这样做 plt.axis('off')
它甚至会隐藏标签。有什么解决方法吗?这是我的代码。
fig, ax = plt.subplots(3, 10, figsize=(20,7))
i = 0
for row in range(3):
for col in range(10):
if row == 0:
ax[row][col].imshow(final[i])
ax[row][col].set_title(temp_df.columns[col])
ax[row][col].tick_params(top='off', bottom='off', left='off', right='off', labelleft='on', labelbottom='off')
ax[row][col].imshow(final[i])
# ax[row][col].axis('off')
# ax[row][col].tick_params(axis='both', which='both',length=0)
if col == 0:
ax[row][col].set_ylabel(str(cols[row]))
i += 1
生成的子图快照:
如何生成轴关闭的绘图并在绘图中添加标签?
如果我理解正确,您可以通过将空列表传递给 ax.set_xticks
和 ax.set_yticks
:
ax[row][col].set_xticks([])
ax[row][col].set_yticks([])
完整代码
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots(3, 10, figsize = (20, 7))
for row in range(3):
for col in range(10):
if row == 0:
ax[row][col].set_title('your title')
ax[row][col].tick_params(top = 'off', bottom = 'off', left = 'off', right = 'off', labelleft = 'on', labelbottom = 'on')
ax[row][col].imshow(np.random.randint(0, 10, (10, 10)))
ax[row][col].set_xticks([])
ax[row][col].set_yticks([])
ax[row][col].set_xlabel('x label')
if col == 0:
ax[row][col].set_ylabel(f'row = {row}')
plt.show()