在matplotlib中隐藏轴线和标签,最小/最大y标签除外

时间:2020-07-17 12:40:12

标签: python matplotlib

我在Python matplotlib中有剧情:

from matplotlib import pyplot as plt

data = [1, 5, 2, 1, 1, 4, 3, 1, 7, 8, 9, 6, 1]
plt.plot(data)

除了最小和最大y轴标签外,是否可以隐藏轴线和标签?我了解plt.axis("off"),但是我想在y轴上显示第一个和最后一个标签。

当前图位于下图的左侧,所需图位于右侧。

enter image description here

3 个答案:

答案 0 :(得分:5)

在这里设置边框和刻度的格式以隐藏它们,然后明确设置y刻度:

from matplotlib import pyplot as plt

data = [1, 5, 2, 1, 1, 4, 3, 1, 7, 8, 9, 6, 1]

fig, ax = plt.subplots()
ax.plot(data)
for side in ['top','right','bottom','left']:
    ax.spines[side].set_visible(False)
ax.tick_params(axis='both',which='both',labelbottom=False,bottom=False,left=False)
ax.set_yticks([min(y),max(y)]) 

enter image description here

答案 1 :(得分:3)

也许有更好的方法,但是您可以使用plt.axis('off')将其删除。从中添加了文字。

from matplotlib import pyplot as plt

data = [1, 5, 2, 1, 1, 4, 3, 1, 7, 8, 9, 6, 1]
plt.plot(data)
plt.axis('off')
plt.text(-0.5,9.0,'9')
plt.text(-0.5,1.0,'1')

enter image description here

答案 2 :(得分:2)

尝试:

from matplotlib import pyplot as plt
data = [1, 5, 2, 1, 1, 4, 3, 1, 7, 8, 9, 6, 1]
plt.box(False)
plt.yticks(ticks= [min(data),max(data)])
plt.xticks(ticks= [])
plt.plot(data)

plt.box(False)用于删除打印框。

enter image description here

请注意,这种方法在图表上存在1和9的刻度。