Matplotlib - оси форматирования

Иногда одна или несколько точек намного больше, чем объем данных. В таком случае масштаб оси должен быть логарифмическим, а не нормальным. Это логарифмическая шкала. В Matplotlib это возможно, установив для свойства xscale или vscale объекта axes значение log.

Также иногда требуется показать дополнительное расстояние между номерами осей и меткой оси. Свойству labelpad любой оси (x, y или обеих) можно задать желаемое значение.

Обе указанные выше функции демонстрируются с помощью следующего примера. Подграфик справа имеет логарифмический масштаб, а на оси x слева есть метка на большем расстоянии.

import matplotlib.pyplot as plt
import numpy as np
fig, axes = plt.subplots(1, 2, figsize=(10,4))
x = np.arange(1,5)
axes[0].plot( x, np.exp(x))
axes[0].plot(x,x**2)
axes[0].set_title("Normal scale")
axes[1].plot (x, np.exp(x))
axes[1].plot(x, x**2)
axes[1].set_yscale("log")
axes[1].set_title("Logarithmic scale (y)")
axes[0].set_xlabel("x axis")
axes[0].set_ylabel("y axis")
axes[0].xaxis.labelpad = 10
axes[1].set_xlabel("x axis")
axes[1].set_ylabel("y axis")
plt.show()

Колючки осей - это линии, соединяющие метки осей, разграничивающие границы области построения. Объект оси имеет шипы, расположенные вверху, внизу, слева и справа.

Каждый корешок можно отформатировать, указав цвет и ширину. Любой край можно сделать невидимым, если его цвет не установлен.

import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.spines['bottom'].set_color('blue')
ax.spines['left'].set_color('red')
ax.spines['left'].set_linewidth(2)
ax.spines['right'].set_color(None)
ax.spines['top'].set_color(None)
ax.plot([1,2,3,4,5])
plt.show()