I'm trying to remove the origin ticks from my plot below to stop them overlapping, alternatively just moving them away from each other would also be great I tried this:
xticks = ax.xaxis.get_major_ticks()
xticks[0].label1.set_visible(False)
yticks = ax.yaxis.get_major_ticks()
yticks[0].label1.set_visible(False)
However this removed the first and last ticks from the y axis like so:
Does anyone have an idea about how to do this? Any help would be greatly appreciated.
EDIT: Added more example code
import matplotlib
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
plt.xlabel(xlab)
plt.ylabel(ylab)
ax.spines["right"].set_color('none')
ax.xaxis.set_ticks_position('top')
ax.yaxis.set_ticks_position('left')
ax.spines["bottom"].set_color('none')
ax.xaxis.set_label_position('top')
ax.spines['left'].set_color('black')
ax.spines['top'].set_color('black')
ax.tick_params(colors='black')
xticks = ax.xaxis.get_major_ticks()
xticks[0].label1.set_visible(False)
yticks = ax.yaxis.get_major_ticks()
yticks[-1].label1.set_visible(False)
for x, y in all:
ax.plot(x, y, 'ro')
Why not simply doing
ax.set_xticks(ax.get_xticks()[1:])
ax.set_yticks(ax.get_yticks()[:-1])
with ax
being the axis object.
You were almost there. The origin of the y axis is at the bottom. This means that the tick that you want to delete, being at the top, is the last one, that is yticks[-1]
:
yticks[-1].set_visible(False)
ax.xaxis.get_major_ticks()[0].draw = lambda *args:None
ax.yaxis.get_major_ticks()[-1].draw = lambda *args:None
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With