I have a semilogx plot and I would like to remove the xticks. I tried:
plt.gca().set_xticks([]) plt.xticks([]) ax.set_xticks([])
The grid disappears (ok), but small ticks (at the place of the main ticks) remain. How to remove them?
I have a semilogx plot and I would like to remove the xticks. I tried:
plt.gca().set_xticks([]) plt.xticks([]) ax.set_xticks([])
The grid disappears (ok), but small ticks (at the place of the main ticks) remain. How to remove them?
ax.set_xticks([], [])
and it’s solved …The tick_params
method is very useful for stuff like this. This code turns off major and minor ticks and removes the labels from the x-axis.
from matplotlib import pyplot as plt plt.plot(range(10)) plt.tick_params( axis='x', # changes apply to the x-axis which='both', # both major and minor ticks are affected bottom=False, # ticks along the bottom edge are off top=False, # ticks along the top edge are off labelbottom=False) # labels along the bottom edge are off plt.show() plt.savefig('plot') plt.clf()
Not exactly what the OP was asking for, but a simple way to disable all axes lines, ticks and labels is to simply call:
plt.axis('off')
Alternatively, you can pass an empty tick position and label as
# for matplotlib.pyplot # --------------------- plt.xticks([], []) # for axis object # --------------- # from Anakhand May 5 at 13:08 # for major ticks ax.set_xticks([]) # for minor ticks ax.set_xticks([], minor=True)
Here is an alternative solution that I found on the matplotlib mailing list:
import matplotlib.pylab as plt x = range(1000) ax = plt.axes() ax.semilogx(x, x) ax.xaxis.set_ticks_position('none')
There is a better, and simpler, solution than the one given by John Vinyard. Use NullLocator
:
import matplotlib.pyplot as plt plt.plot(range(10)) plt.gca().xaxis.set_major_locator(plt.NullLocator()) plt.show() plt.savefig('plot')
Hope that helps.
Try this to remove the labels (but not the ticks):
import matplotlib.pyplot as plt plt.setp( ax.get_xticklabels(), visible=False)
This snippet might help in removing the xticks only.
from matplotlib import pyplot as plt plt.xticks([])
This snippet might help in removing the xticks and yticks both.
from matplotlib import pyplot as plt plt.xticks([]),plt.yticks([])
Those of you looking for a short command to switch off all ticks and labels should be fine with
plt.tick_params(top=False, bottom=False, left=False, right=False, labelleft=False, labelbottom=False)
which allows type bool
for respective parameters since version matplotlib>=2.1.1
For custom tick settings, the docs are helpful:
https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.tick_params.html
# remove all the ticks (both axes), and tick labels on the Y axis plt.tick_params(top='off', bottom='off', left='off', right='off', labelleft='off', labelbottom='on')
Modify the following rc parameters by adding the commands to the script:
plt.rcParams['xtick.bottom'] = False plt.rcParams['xtick.labelbottom'] = False
A sample matplotlibrc file is depicted in this section of the matplotlib documentation, which lists many other parameters like changing figure size, color of figure, animation settings, etc.