Как определить количество второстепенных тиков в конфигурационном файле matplotlib - PullRequest
0 голосов
/ 05 декабря 2018

Используя один Locator(), можно управлять количеством второстепенных или главных тиков по осям matplotlib.

Например:

plt.gca().yaxis.set_minor_locator(plt.MultipleLocator(1))

Но приведенная выше строка зависит от данных, которые вызамышляют.

Я хотел бы знать, есть ли способ изменить количество второстепенных тиков из файла стиля matplotlib, например matplotlibrc (https://matplotlib.org/users/customizing.html). Например, вы можете управлять стилем второстепенных тиковс:

xtick.minor.visible : True
xtick.minor.width   : 2
xtick.minor.size    : 5

Но я не знаю, как справиться с количеством второстепенных тиков.

1 Ответ

0 голосов
/ 06 декабря 2018

Количество тиков на самом деле не считается атрибутом "стиля".Таким образом, в настоящее время у вас нет выбора использовать для этого файл rc.

Откуда берутся настройки по умолчанию, это определяется AutoMinorLocator, который используется, если нет другихзадан пользовательский локатор и включены второстепенные тики.

matplotlib.ticker.AutoMinorLocator(n=None)

Динамически находите второстепенные позиции тиков на основе позиций главных тиков.Шкала должна быть линейной с равномерно распределенными крупными тиками.

n - количество делений интервала между основными тиками;например, n = 2 поместит один второстепенный тик на полпути между основными тиками.

Если n опущен или отсутствует, он будет установлен на 5 или 4.

Этооставляет место для следующего обходного пути.Вы можете обезьяна исправить AutoMinorLocator, чтобы использовать значение по умолчанию, отличное от обычного.Например, чтобы иметь 23 небольших мусорных ведра,

# use these lines on top of your matplotlib script
import matplotlib.ticker
class MyLocator(matplotlib.ticker.AutoMinorLocator):
    def __init__(self, n=23):
        super().__init__(n=n)
matplotlib.ticker.AutoMinorLocator = MyLocator        


# Now use matplotlib as usual.       
import matplotlib.pyplot as plt
plt.rcParams["xtick.minor.visible"] =  True

plt.plot([1,2])
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...