Я пытаюсь построить фигуру без отметок или чисел на любой из осей (я использую оси в традиционном смысле, а не номенклатуру matplotlib!). Проблема, с которой я столкнулся, заключается в том, что matplotlib корректирует метки x (y), вычитая значение N, а затем добавляет N в конце оси.
Это может быть расплывчато, но следующий упрощенный пример выдвигает на первый план проблему с '6.18', являющимся оскорбительным значением N:
import matplotlib.pyplot as plt
import random
prefix = 6.18
rx = [prefix+(0.001*random.random()) for i in arange(100)]
ry = [prefix+(0.001*random.random()) for i in arange(100)]
plt.plot(rx,ry,'ko')
frame1 = plt.gca()
for xlabel_i in frame1.axes.get_xticklabels():
xlabel_i.set_visible(False)
xlabel_i.set_fontsize(0.0)
for xlabel_i in frame1.axes.get_yticklabels():
xlabel_i.set_fontsize(0.0)
xlabel_i.set_visible(False)
for tick in frame1.axes.get_xticklines():
tick.set_visible(False)
for tick in frame1.axes.get_yticklines():
tick.set_visible(False)
plt.show()
Три вещи, которые я хотел бы знать:
Как отключить это поведение в первую очередь (хотя в большинстве случаев это полезно, это не всегда!) Я просмотрел
matplotlib.axis.XAxis
и не могу найти ничего подходящегоКак я могу заставить N исчезнуть (то есть
X.set_visible(False)
)В любом случае, есть ли лучший способ сделать это? Мой последний сюжет будет 4x4 на графике, если это уместно.
источник
Ответы:
Вместо того, чтобы скрывать каждый элемент, вы можете скрыть всю ось:
Или вы можете установить галочки в пустой список:
Во втором варианте вы все еще можете использовать
plt.xlabel()
иplt.ylabel()
для добавления меток к осям.источник
'Axes3DSubplot' object has no attribute 'get_zaxis'
get_xaxis().set_visible(False)
. Я думаю, что matplotlib в этом случае инициализирует некоторые параметры, как если бы график был 2D.ax.set_zticks([])
будет делать то, что вы хотитеЕсли вы хотите скрыть только текст оси, сохраняя линии сетки:
Делать
set_visible(False)
илиset_ticks([])
также будет скрывать линии сетки.источник
Если вы похожи на меня и не всегда извлекаете оси
ax
, при построении фигуры, простое решение было бы сделатьисточник
В некотором роде старый поток, но, похоже, это более быстрый метод с использованием последней версии matplotlib:
установить основной форматер для оси X
источник
На самом деле я не смог отрисовать изображение без границ или данных осей на основе какого-либо фрагмента кода (даже того, который был принят в ответе). Прочитав некоторую документацию по API, я нашел этот код для рендеринга своего изображения.
Я использовал
tick_params
вызов, чтобы в основном закрыть любую дополнительную информацию, которая может быть представлена, и у меня есть идеальный график в моем выходном файле.источник
Я обозначил эту цифру цветом, чтобы облегчить процесс.
Вы можете иметь полный контроль над рисунком, используя эти команды, чтобы завершить ответ, я добавил также контроль над сплайнами:
источник
ax.set_xticklabels([])
иax.set_xticks([])
не работал для меня, ноax.axes.get_xaxis().set_visible(False)
работал.При использовании объектно-ориентированного API у
Axes
объекта есть два полезных метода для удаления текста оси,set_xticklabels()
иset_xticks()
.Скажем, вы создаете сюжет, используя
Если вы просто хотите удалить метки, вы можете использовать
или полностью удалить галочки, вы можете использовать
Эти методы полезны для того, чтобы точно указать, где вы хотите поставить галочки и как вы хотите, чтобы они были помечены. Передача пустого списка приводит к отсутствию галочек или меток соответственно.
источник
Одним из трюков может быть установка белого цвета для ярлыков, чтобы скрыть это!
источник