Перекрытие ярлыка ярлыка оси y и метки метки x-оси в matplotlib
Если я создаю график с matplotlib, используя следующий код:
import numpy as np
from matplotlib import pyplot as plt
xx = np.arange(0,5, .5)
yy = np.random.random( len(xx) )
plt.plot(xx,yy)
plt.imshow()
Я получаю результат, похожий на прикрепленный образ. Проблема заключается в том, что
самая нижняя метка y-tick перекрывает самую левую метку x-tick. Эта
выглядит непрофессионально. Мне было интересно, есть ли автоматический
способ удалить самую нижнюю метку y-tick, поэтому у меня нет
проблема перекрытия. Чем меньше строк кода, тем лучше.
![enter image description here]()
Ответы
Ответ 1
В модуле тикера есть класс MaxNLocator, который может принимать prune
kwarg.
Используя это, вы можете удалить первый галочку:
import matplotlib.pyplot as plt
from matplotlib.ticker import MaxNLocator
import numpy as np
xx = np.arange(0,5, .5)
yy = np.random.random( len(xx) )
plt.plot(xx,yy)
plt.gca().xaxis.set_major_locator(MaxNLocator(prune='lower'))
plt.show()
Результат:
![enter image description here]()
Ответ 2
Вы можете поместить тики по оси x:
ax.tick_params(axis='x', pad=15)
Замените ax
на plt.gca()
, если вы не сохранили переменную ax
для текущей цифры.
Вы также можете наложить обе оси, удалив параметр axis
.
Ответ 3
Очень элегантный способ исправить проблему перекрытия - это увеличение заполнения ярлыков x и y-tick (т.е. расстояния до оси). Оставляя угол, большинство ярлыков не всегда могут быть нужны. На мой взгляд, в целом это выглядит хорошо, если метки немного удалены от оси, чем заданы по умолчанию.
Заполнение может быть изменено с помощью файла matplotlibrc или на вашем графике script с помощью команд
import matplotlib as mpl
mpl.rcParams['xtick.major.pad'] = 8
mpl.rcParams['ytick.major.pad'] = 8
В большинстве случаев достаточно заполнить 6.
Ответ 4
Об этом подробно сказано здесь. В основном вы используете что-то вроде этого:
plt.xticks([list of tick locations], [list of tick lables])