Сокрытие текста оси в графиках matplotlib

Я пытаюсь вывести число на печать без меток или чисел на любой из осей (я использую оси в традиционном смысле, не matplotlib номенклатуру!). Проблема, с которой я столкнулся, - то, где matplotlib корректирует x (y) ticklabels путем вычитания значения 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()

Эти три вещи, которые я хотел бы знать:

  1. Как выключить это поведение во-первых (хотя в большинстве случаев это полезно, это не всегда!) Я просмотрел matplotlib.axis.XAxis и ничто не может найти соответствующим

  2. Как я могу заставить N исчезнуть (т.е. X.set_visible(False))

  3. Существует ли лучший способ сделать вышеупомянутое так или иначе? Мой заключительный график был бы 4x4 подграфики в числе, если это релевантно.

328
задан Chris 25 June 2012 в 09:53
поделиться

1 ответ

Вместо того, чтобы скрывать каждый элемент, вы можете скрыть всю ось:

frame1.axes.get_xaxis().set_visible(False)
frame1.axes.get_yaxis().set_visible(False)

или, вы можете установить галочки в пустой список:

frame1.axes.get_xaxis().set_ticks([])
frame1.axes.get_yaxis().set_ticks([])

в этом втором варианте вы можете использовать PLT.XLabel ( ) и PLT.YLABEL () , чтобы добавить этикетки на оси.

416
ответ дан 23 November 2019 в 00:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: