Matplotlib предлагает несколько способов управлять видимостью осей на подграфиках, что позволяет создавать более чистые и целенаправленные визуализации. В этой статье рассматриваются наиболее эффективные методы, сравниваются их сильные стороны и демонстрируется их использование.
Содержание
matplotlib.axes.Axes.set_axis_off()
get_xaxis().set_visible()
иget_yaxis().set_visible()
- Почему следует избегать
matplotlib.pyplot.axis()
matplotlib.axes.Axes.set_axis_off()
Метод set_axis_off()
обеспечивает наиболее чистый и прямой способ полностью удалить как ось x, так и ось y с подграфика. Он работает непосредственно с отдельным объектом Axes
, обеспечивая точный контроль без влияния на другие части рисунка.
import matplotlib.pyplot as plt
fig, axes = plt.subplots(2, 2)
# Отключение осей для верхнего левого подграфика
axes[0, 0].set_axis_off()
# ... код построения для других подграфиков ...
plt.show()
get_xaxis().set_visible()
и get_yaxis().set_visible()
Для более тонкого контроля можно независимо управлять видимостью осей x и y с помощью get_xaxis().set_visible()
и get_yaxis().set_visible()
. Это особенно полезно, когда нужно удалить только одну ось, сохранив другую.
import matplotlib.pyplot as plt
fig, axes = plt.subplots(2, 2)
# Отключение только оси x для верхнего правого подграфика
axes[0, 1].get_xaxis().set_visible(False)
# Отключение только оси y для нижнего левого подграфика
axes[1, 0].get_yaxis().set_visible(False)
# ... код построения для других подграфиков ...
plt.show()
Почему следует избегать matplotlib.pyplot.axis()
Хотя matplotlib.pyplot.axis()
может управлять свойствами осей, он работает на уровне рисунка. Использование его для отключения осей на подграфиках может привести к непредвиденным последствиям, затрагивающим все подграфики одновременно. Для целенаправленного управления в пределах подграфиков лучше использовать описанные выше методы на уровне осей.
В заключение, set_axis_off()
предлагает наиболее простой подход для полного удаления осей, в то время как get_xaxis().set_visible()
и get_yaxis().set_visible()
обеспечивают гранулярный контроль над видимостью отдельных осей. Избегайте использования matplotlib.pyplot.axis()
для этой конкретной задачи.