隐藏坐标轴标签

48 投票
3 回答
91757 浏览
提问于 2025-04-16 06:26

我想在第一个子图211上隐藏坐标轴的标签。
我想给整个图形加标签,而不仅仅是一个子图(参考:“Isub事件特征”)。
我该如何控制字体的属性,比如大小、字体和颜色呢?

f = Figure()

vdsvgsPlot = f.add_subplot(211)
vdsvgsPlot.plot(theLister()[3],theLister()[0])
vdsvgsPlot.plot(theLister()[3],theLister()[1])

isubPlot = f.add_subplot(212)
isubPlot.plot(theLister()[3],theLister()[2])

plotCanvas = FigureCanvasTkAgg(f, master)
toolbar = NavigationToolbar2TkAgg(plotCanvas, master)

plotCanvas.get_tk_widget().pack()

提前谢谢你。

3 个回答

0

请试试这个:

import numpy as np
import matplotlib.pyplot as plt

x = np.array([1, 2, 3, 4])
y = np.array([1, 4, 9, 16])
plt.plot(x, y)

plt.xlabel(None)
plt.ylabel(None)

plt.show()

输出:

在这里输入图片描述

59

试试用 .xaxis.label.set_visible(False) 这个方法。

92

你这里有几个不同的问题……让我把它们分开说一下……

当你说“隐藏第一个子图的坐标轴标签”时,你是指实际的坐标轴标签(这些标签默认是没有的,除非你自己指定),还是指刻度标签(也就是坐标轴上的数字),或者是坐标轴的刻度,还是以上所有内容?

如果你是指“以上所有内容”,那么只需要执行 ax.xaxis.set_visible(False),y轴也是同样的做法。这里的 ax 就是你上面示例代码中的 vdsvgsPlot

如果你是指坐标轴的刻度标签,那么只需将它们设置为空 [],也就是: ax.set_xticklabels([])。(y轴同样使用 set_yticklabels

如果你是指坐标轴的刻度,可以做类似的操作: ax.set_xticks([])ax.set_yticks([]),这样就会关闭刻度和刻度标签。

至于第二个问题,可以使用 suptitle 来给整个图形加标题。也就是说: fig.suptitle('whatever')(在你上面的示例代码中是 f.suptitle...)。

关于如何 控制字体属性,你可以在调用 suptitle(或者其他创建图上文本的函数)时传入 各种关键字参数,或者在创建文本后再设置。例如 fig.suptitle('This is a title', size=20, horizontalalignment='left', font='Times', color='red')

总的来说,我建议你浏览一下各种 用户指南示例图库(里面都有源代码),还有 pyplot API 文档详细的 API 文档

撰写回答