python matplotlib ax.get_xticks () не получает текущее местоположение xtick - PullRequest
0 голосов
/ 10 апреля 2019

Я запускаю прикрепленный код. На рисунке тики помечены от 0 до 1 с шагом 0,2, но я получаю от -0,2 до 1,2, запустив ax.get_xticks (). Это ошибка, не так ли?

import matplotlib.pyplot as plt
fig = plt.figure()
plt.ion()
ax = fig.add_subplot(111)
ax.get_xticks()
ax.plot([-0.05, 1.06], [0.4, 0.5])
ax.get_xticks()

Я ожидал получить массив ([0, 0,2, 0,4, 0,6, 0,8, 1]), отличный от массива ([- 0,2, 0, 0,2, 0,4, 0,6, 0,8, 1, 1,2])

1 Ответ

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

Не ошибка.Построение графика за пределами диапазона по умолчанию от 0 до 1 по оси x приведет к добавлению дополнительных отметок для изменения масштаба оси с учетом нового диапазона данных.Однако они не отображаются, потому что они находятся за пределами xlim.

Это можно увидеть, установив галочки и xlim вручную:

fig = plt.figure()
plt.ion()
ax = fig.add_subplot(111)
ax.plot([-0.05, 1.06], [0.4, 0.5])
xlim = ax.get_xlim()
ax.set_xticks([-100.0, 0.0, 0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 100.0])
ax.set_xlim(xlim)

Чтобы получить, какие xticksпоказано, что вы можете использовать:

x0, x1 = ax.get_xlim()
visible_ticks = [t for t in ax.get_xticks() if t>=x0 and t<=x1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...