首页 > 解决方案 > 使用 sharey= 删除子图上的 y 轴刻度标签

问题描述

我正在尝试在 python 3.7 和 matplotlib 上创建一个带有子图的多图图形。我设置了第一个子图(ax1)所在的情节,ax1.set_ylim()并且ax2=plt.subplot(122, sharey=ax1)

但是,我想关闭 ax2 上的 y-tick 标签。当我通过 这样做时ax2.set_yticks([]),两个子图上的刻度线都会消失(可能是因为sharey)。请参阅下面的示例

import matplotlib.pyplot as plt
import numpy as np

# create data 
data1 = np.random.rand(10, 10)
data2 = np.random.rand(10, 10)

# plot data
fig = plt.figure(figsize=(8, 4))
ax1 = plt.subplot(121)
ax1.imshow(data1)
ax1.set_ylim(0,5)

ax2 = plt.subplot(122, sharex=ax1, sharey=ax1)
ax2.imshow(data2)
ax2.set_yticks([])

plt.show()

没有设置ax2.set_yticks([]),我得到以下信息: 带滴答声 但是当我设置时ax2.set_yticks([]),两个轴都消失了: 无记号

有一个更好的方法吗?我想在左边有 y 轴标签,但不在右边。

标签: pythonpython-3.xmatplotlib

解决方案


你也可以试试这个:

import matplotlib.pyplot as plt
import numpy as np

# create data 
data1 = np.random.rand(10, 10)
data2 = np.random.rand(10, 10)

# plot data
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(8, 4), sharey=True)
ax1.imshow(data1)
ax1.set_ylim(0,5)

ax2.imshow(data2)

plt.show()

输出:

在此处输入图像描述


推荐阅读