set_markersize не работает для правой боковой оси - PullRequest
1 голос
/ 06 ноября 2019

Я возился с некоторыми стилями сюжета и столкнулся с любопытством. У меня есть график с twinx() для производства тиков как с правой, так и с левой стороны. Я хочу, чтобы некоторые тики пошли дальше, другие пошли дальше, чем другие.

Я могу добавить отступ к любому тику на любых осях и вытолкнуть текст с помощью ax.yaxis.get_major_ticks()[1].set_pad(), но когда я пытаюсь удлинить тик с помощью ax.yaxis.get_major_ticks()[1].tick1line.set_markersize(), работает для всех осей, кроме правой стороны. Любое понимание?

Пожалуйста, смотрите код ниже. Я попытался переключить ось (ax1, ax2) и индекс.

import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np

t = np.linspace(0,5)
x = np.exp(-t)*np.sin(2*t)

fig, ax1 = plt.subplots()

ax1.plot(t, x, alpha=0.0)
ax2 = ax1.twinx()
ax2.plot(t, x, alpha=1.0)

ax1.set_xticks([0,1,2])
ax1.set_yticks([0.1, 0.2])
ax2.set_yticks([0.3, 0.4, 0.5])
ax2.set_xticks([1,2,3])

ax1.grid(True, color='lightgray')
ax2.grid(True, color='lightgray')

for a in [ax1, ax2]:
    a.spines["top"].set_visible(False)
    a.spines["right"].set_visible(False)
    a.spines["left"].set_visible(False)
    a.spines["bottom"].set_visible(False)

ax1.set_axisbelow(True)
ax2.set_axisbelow(True)

ax1.xaxis.get_major_ticks()[1].set_pad(15)  #
ax1.xaxis.get_major_ticks()[1].tick1line.set_markersize(15)

ax1.yaxis.get_major_ticks()[1].set_pad(15)  #
ax1.yaxis.get_major_ticks()[1].tick1line.set_markersize(15)

ax2.yaxis.get_major_ticks()[1].set_pad(15)  #
ax2.yaxis.get_major_ticks()[1].tick1line.set_markersize(15)

plt.savefig('fig.pdf')
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...