2013-12-06 5 views
19

Я хочу удалить тики по оси x, но сохраните вертикальные опоры. Когда я делаю следующее, я теряю как галочки по оси х так и сетку.Снимите отметки оси x, сохраняя сетки (matplotlib)

import matplotlib.pyplot as plt 
fig = plt.figure() 
figr = fig.add_subplot(211) 
... 
figr.axes.get_xaxis().set_visible(False) 
figr.xaxsis.grid(True) 

Как сохранить сетку, делая невидимым х-оси тиков?

ответ

34

Удалите клещи, вы имеете в виду удалить этикетки тика или сами клещи? Это позволит удалить метки:

import matplotlib.pyplot as plt 
import numpy as np 

x = np.linspace(0, 2*np.pi, 100) 

fig = plt.figure() 
ax = fig.add_subplot(111) 

ax.plot(x, np.sin(x)) 

ax.grid(True) 
ax.set_xticklabels([]) 


plt.show() 

Если вы действительно хотите избавиться от маленьких клеща линий, вы можете добавить следующее:

for tic in ax.xaxis.get_major_ticks(): 
    tic.tick1On = tic.tick2On = False 

Вы могли бы turn the tick labels off здесь тоже, не прибегая к ax.set_xticklabels([]) "взломать", установив tic.label1On = tic.label2On = False:

import matplotlib.pyplot as plt 
import numpy as np 

x = np.linspace(0, 2*np.pi, 100) 

fig = plt.figure() 
ax = fig.add_subplot(111) 

ax.plot(x, np.sin(x)) 

ax.grid(True) 
for tic in ax.xaxis.get_major_ticks(): 
    tic.tick1On = tic.tick2On = False 
    tic.label1On = tic.label2On = False 

plt.show() 
+0

Ya, это то, что я хотел. Я просто хотел снять метки. – DurgaDatta

+0

О, круто. Ну, на всякий случай, я также выяснил, как удалить маленькие тиковые линии тоже :) – mgilson

+0

У меня есть два подзаголовка (ax1 и ax2). Как я могу внести изменения без изменения атрибута отдельных осей? Я имею в виду, есть ли способ сделать что-то вроде fig.setxticklables ([]), чем делать это для осей, чтобы как ax1, так и ax2 получили изменения? – DurgaDatta

Смежные вопросы