Сховати значення осі, але зберігати мітки осі в matplotlib


101

У мене це зображення:

plt.plot(sim_1['t'],sim_1['V'],'k')
plt.ylabel('V')
plt.xlabel('t')
plt.show()

введіть тут опис зображення

Я хочу приховати цифри; якщо я використовую:

plt.axis('off')

... Я отримую це зображення:

введіть тут опис зображення

Він також приховує ярлики, Vі t. Як я можу зберегти мітки, приховуючи значення?

Відповіді:


137

Якщо ви використовуєте Matplotlib об'єктно-орієнтований підхід , це просте завдання використання ax.set_xticklabels()і ax.set_yticklabels():

import matplotlib.pyplot as plt

# Create Figure and Axes instances
fig,ax = plt.subplots(1)

# Make your plot, set your axes labels
ax.plot(sim_1['t'],sim_1['V'],'k')
ax.set_ylabel('V')
ax.set_xlabel('t')

# Turn off tick labels
ax.set_yticklabels([])
ax.set_xticklabels([])

plt.show()

11
Чудово працює для видалення ярликів із позначками, але ви все одно отримуєте позначки ...
Ендрю Шрайбер,

85

Без цього subplotsможна універсально видалити кліщі таким чином:

plt.xticks([])
plt.yticks([])

44

Це чудово працює. Просто вставте це раніше plt.show():

plt.gca().axes.get_yaxis().set_visible(False)

Бум.


2
Дякую, це чудово працює. В інших випадках галочки зберігаються (оскільки напрямок галочки за замовчуванням
вимкнено

На відміну від таких відповідей, як ax.set_xticklabels ([]), цей ідеально підходить для наступного випадку: один використовує підпрограми з умовою sharex і хоче видалити галочки лише для одного з підплотів.
Михаил Лисаков

Чудово! І plt.gca (). Axes.get_xaxis (). Set_visible (False), щоб також позбутися міток та кліщів осі x.
fbparis

1
або якщо у вас вже є предмет сокири,ax.xaxis.set_visible(False)
спіну

1
@filip Я радий, що це допомогло :)
MRT

3

Не впевнений, що це найкращий спосіб, але ви, звичайно, можете замінити галочки таким чином:

import matplotlib.pyplot as plt
x = range(10)
y = range(10)
plt.plot(x,y)
plt.xticks(x," ")
plt.show()

У Python 3.4 це створює простий графік ліній без міток на вісі x. Простий приклад тут: http://matplotlib.org/examples/ticks_and_spines/ticklabels_demo_rotation.html

Це пов'язане питання також має кілька кращих пропозицій: приховування тексту осі у графіках matplotlib

Я новачок у пітоні. Ваш пробіг може відрізнятися в попередніх версіях. Може, інші можуть допомогти?


2

щоб повністю видалити галочки, використовуйте:

ax.set_yticks([])
ax.set_xticks([])

інакше ax.set_yticklabels([])і ax.set_xticklabels([])збереже галочки.


Коли я намагаюся ax.set_yticks([], []), я отримую таке попередження: "MatplotlibDeprecationWarning: Передача другорядного параметра set_xticks () позиційно застаріла, оскільки Matplotlib 3.2; параметр стане лише двома незначними випусками пізніше." Яка правильна альтернатива?
Rylan Schaeffer

@RylanSchaeffer, у вашому прикладі ax.set_yticks([], [])ви передаєте 2 порожні списки, що викликає помилку. Навіщо це робити? Дивіться посібник з командування. Якщо перший аргумент не повинен бути прийнятий позиційно, передати його з ключовим словом: ax.set_yticks(ticks=[]).
Руслан С.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.