Matplotlib не будет показывать мелкие галочки при использовании субплотов - PullRequest
1 голос
/ 19 июня 2019

У меня есть несколько подзаговоров, и я хочу настроить параметры галочек на оси с помощью ax.tick_params. Все работает нормально, однако, незначительные галочки не отображаются. Вот пример кода

import matplotlib.pyplot as plt

x = np.linspace(0,1,100)
y = x*x

f, (ax1,ax2) = plt.subplots(2, 1)

ax1.tick_params(axis="both", direction="in", which="both", right=False, top=True)
ax2.tick_params(axis="both", direction="in", which="both", right=True, top=False)

ax1.plot(x,y)
ax2.plot(x,-y)

plt.show()

Я предполагал, что, оба =, дадут мне мелкие галочки. Однако мне нужно добавить еще

plt.minorticks_on()

, что делает их видимыми , но только в ax2.

Как мне это исправить?

Ответы [ 2 ]

1 голос
/ 19 июня 2019

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

ax1.tick_params(axis="both", direction="in", which="both", right=False, top=True)
ax2.tick_params(axis="both", direction="in", which="both", right=True, top=False)

ax1.plot(x,y)
ax2.plot(x,-y)

for ax in [ax1, ax2]:
    ax.xaxis.set_minor_locator(AutoMinorLocator(4))
    ax.yaxis.set_minor_locator(AutoMinorLocator(4))

enter image description here

1 голос
/ 19 июня 2019

При использовании pyplot опасность состоит в том, что вы теряете трек, текущая ось которого связана с такой командой, как plt.minorticks_on().Следовательно, было бы полезно использовать соответствующие методы осей, с которыми вы работаете:

ax1.minorticks_on()
ax2.minorticks_on()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...