Незначительные x отметок ниже, значительных выше - PullRequest
0 голосов
/ 17 апреля 2019

Можно ли иметь младшие тики оси X ниже Axes, а основные - выше?

С помощью следующего кода я могу рисовать как мелкие, так и основные тики на одной стороне, но я бы хотел, чтобы тики 0 и 5 располагались над графиком, в то время как второстепенные тики остаются ниже.

from matplotlib import figure as mpfig
from matplotlib.backends import backend_agg as mpback


fig = mpfig.Figure()
mpback.FigureCanvas(fig)
ax = fig.add_subplot(111)

x = list(range(10))
y = list(range(10))

ax.set_xticks(list(range(0, 11, 5)))
ax.set_xticks(list(range(0, 11, 1)), minor=True)

ax.plot(x, y)
fig.savefig("picture.png")

Этот код создает следующую картинку:

enter image description here

Я знаю о Axes.tick_params, и я ожидал найти такой вариант там, но я не нашел ни одного. Я также знаю о Axes.tick_top и Axes.tick_bottom, но они перемещают как мелкие, так и крупные тики в одну сторону.

Я бы хотел избежать любого трюка с Axes.twinx, так как он добавил бы новый Axes объект, который сделал бы рисунок более тяжелым.

1 Ответ

2 голосов
/ 17 апреля 2019

Axes.tick_params должен быть в состоянии решить эту проблему.

ax.tick_params(axis='x',which='minor',top=False,bottom=True)
ax.tick_params(axis='x',which='major',top=True,bottom=False)

При попытке это сработало для меня:

from matplotlib import figure as mpfig
from matplotlib.backends import backend_agg as mpback


fig = mpfig.Figure()
mpback.FigureCanvas(fig)
ax = fig.add_subplot(111)

x = list(range(10))
y = list(range(10))

ax.tick_params(axis='x',which='minor',top=False,bottom=True)
ax.tick_params(axis='x',which='major',top=True,bottom=False)

ax.set_xticks(list(range(0, 11, 5)))
ax.set_xticks(list(range(0, 11, 1)), minor=True)

ax.plot(x, y)
fig.savefig("picture.png")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...