I want to hide my ticks label on a plot I created, but keep this tick itself (the little marks on the axis). When I try to use what I\'ve found here, for example, the entire
I didn't find divenex's answer to work for me. This answer creates ticks without triggering any automatic labeling, hence no requirement to use "labelbottom= False":
if the bottom and left ticks already exist:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
plt.plot([1,2,3],[4,5,6])
ax.tick_params(right= True,top= True)
if no ticks already exist:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
plt.plot([1,2,3],[4,5,6])
ax.tick_params(right= True,top= True,left= True, bottom= True)
Here is a slightly simpler answer, using ax.tick_params
import matplotlib.pylab as plt
fig, ax = plt.subplots()
plt.plot([1,2,3],[4,5,6])
ax.tick_params(labelbottom=False)
plt.show()
Here is the resulting output in Matplotlib 3
As commented by @chris, one can similarly hide the labels on any of the other axes using labeltop, labelleft, labelright, in the above example, instead of labelbottom.
Set the tick labels not to be an empty array, but to be a list of empty strings. In the example below, I've replaced the xtick labels with empty strings, leaving the y axis untouched. From here you can selectively keep certain labels if you wished.
import pylab as plt
fig, ax = plt.subplots()
ax.plot([1,2,3],[4,5,6])
labels = [item.get_text() for item in ax.get_xticklabels()]
empty_string_labels = ['']*len(labels)
ax.set_xticklabels(empty_string_labels)
plt.show()

This code is adapted from a previous answer.