Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Removing ticks when using grid with imshow matplotlib

In this question, they answer how to correctly use grid with imshow with matplotlib. I am trying to do the same as they do, but I want to remove all ticks (x and y). When I try to do it, it also eliminates the grid and I just the image displayed without grid and ticks. My code is:

fig, ax = plt.subplots()
data = np.random.rand(20,20)
ax.imshow(data)
ax.set_xticks(np.arange(20))
ax.set_xticklabels(np.arange(20))
ax.set_xticks(np.arange(20)+0.5, minor=True)
ax.grid(which='minor',color='w',axis='x',linewidth=6)
ax.axes.xaxis.set_visible(False)
ax.axes.yaxis.set_visible(False)
plt.show()

Does anyone how to remove the ticks while keeping the grid (along the x axis in my case)?

like image 972
Schach21 Avatar asked May 07 '26 04:05

Schach21


1 Answers

This is not perfect, but you can just set the tick label as an empty list.

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

enter image description here

Only the minor xticks, used in the grid, remain.

like image 100
Mathieu Avatar answered May 08 '26 16:05

Mathieu