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"