Skip to content Skip to sidebar Skip to footer

Matplotlib - Hiding Specific Ticks On X-axis

I am trying to hide the first and last x-axis tick text of my bar plot, which is '2004' and '2013'. Matplotlib automatically adds these in by default, even though my dataset is for

Solution 1:

Please, tell me if it's not what you want.

import sys, os
import matplotlib.pyplot as plt

path = sys.path[0]
sizes = [(12,3,), (4,3,)]
x =  range(20)


for i, size in enumerate(sizes):
    fig = plt.figure(figsize = size, dpi = 80, facecolor='white',edgecolor=None,linewidth=0.0, frameon=True, subplotpars=None)
    ax = fig.add_subplot(111)
    ax.plot(x)
    plt.ylabel ('Some label')
    plt.tight_layout()

    make_invisible = True
    if (make_invisible):
        xticks = ax.xaxis.get_major_ticks()
        xticks[0].label1.set_visible(False)
        xticks[-1].label1.set_visible(False)

plt.show()

This example makes invisible first and last X-ticks. But you can easily add checking for your special ticks.


Solution 2:

Just adding to @DmitryNazarov's answer, in case you want just to hide the tick labels, keeping the grid lines visible, use:

ax = plt.gca()     
ax.axes.xaxis.set_ticklabels([])
ax.axes.yaxis.set_ticklabels([])

Solution 3:

I wanted to have ticks for each number from 0 to 30, but the labels looked messy, so I showed only multiples of 5 by doing this:

pyplot.xticks(numpy.arange(0,31,1), [i if i in range(0,31,5) else '' for i in range(31)])

You could apply the same method and exclude labeling for the first and last elements of your dataset.


Post a Comment for "Matplotlib - Hiding Specific Ticks On X-axis"