首页 > 解决方案 > 如何使用 matplotlib 从轴刻度中获取标签的文本?

问题描述

事实是我试图通过将它们的标签与正则表达式进行比较来过滤我在 xaxis 上显示的刻度。我目前正在“过滤”,只选择其中的 60 个。但是,由于我正在使用非周期函数同时愿意强调某种现象,所以我需要能够获得刻度的标签。为此,我需要能够将标签的“值”放入变量中。但我不知道如何获取文本。我已经尝试过 get_text() 方法,但我得到的只是一个空字符串。这是我认为与此处相关的代码部分,请问您是否认为需要一些精度:

    for index, label in enumerate(ax.xaxis.get_ticklabels()):
        if index % (2*30) != 0:
            label.set_visible(False)
        else:
            print(label.get_text())
    for index, tick in enumerate(ax.xaxis.get_ticklines()):
        if index % (4*30) != 0:
            tick.set_visible(False)

这里是一个使用 2 年以上比特币价值的示例,x 轴每 60 天毕业一次。由于我无法获得标签的值,例如,我不能专注于每个月的第一天。感谢所有阅读我的人,如果你有答案,请告诉我!!

标签: pythonmatplotlibgraphaxis-labels

解决方案


好吧,事实上,试图从标签中获取文本并不是那么重要。因为这个文本是 x 值的值。所以,我基本上是试图通过另一种方式获得 x 值......这是我想出的代码:

for index, label in enumerate(ax.xaxis.get_ticklabels()):
    if re.findall(".*-.[13579]-0[2-9]", dateList[index]) or re.findall(".*-.[13579]-[123].", dateList[index]) or re.findall(".*-.[02468]-.*", dateList[index]):
        label.set_visible(False)
for index, tick in enumerate(ax.xaxis.get_ticklines()):
    if index % (4*30) != 0:
        tick.set_visible(False)

结果,以 2 年的比特币价值进行说明,其中 x 轴每 2 个月毕业一次


推荐阅读