Как получить текст метки от отметок оси с помощью matplotlib? - PullRequest
0 голосов
/ 10 апреля 2020

Дело в том, что я пытаюсь отфильтровать тики, которые я показываю на оси, сравнивая их метку с регулярным выражением. Я в настоящее время "фильтрую", взяв только один из шестидесяти из них. Но, поскольку я играю с функциями non periodi c, желая подчеркнуть определенное явление, мне нужно иметь возможность получить ярлык галочки. Чтобы сделать это, мне нужно иметь возможность поместить «значение» метки в переменную. Но я не знаю, как получить текст. Я пробовал метод 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)

Здесь , пример использования значения Bitcoin над 2 года, с осью X, градуированной каждые 60 дней. Поскольку я не могу получить значение метки, я не могу сосредоточиться, например, на первый день каждого месяца. Спасибо всем, кто прочитает меня, и если у вас есть ответ, пожалуйста, скажите мне !!

1 Ответ

0 голосов
/ 10 апреля 2020

Ну, на самом деле, попытка получить текст с ярлыка не была такой актуальной. Потому что этот текст является значением х-значения. Итак, я в основном пытался получить значение 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)

Результат , проиллюстрированный Bitcoin значение за 2 года, где ось х градуируется каждые 2 месяца

...