Hiding Axis Labels

Question:

I’m trying to hide the axis labels on the first subplot at 211.
I’d like to label the figure, not just a subplot (reference: “Isub Event Characteristics”).
How can I control font properties like size, font, color?

f = Figure()

vdsvgsPlot = f.add_subplot(211)
vdsvgsPlot.plot(theLister()[3],theLister()[0])
vdsvgsPlot.plot(theLister()[3],theLister()[1])

isubPlot = f.add_subplot(212)
isubPlot.plot(theLister()[3],theLister()[2])

plotCanvas = FigureCanvasTkAgg(f, master)
toolbar = NavigationToolbar2TkAgg(plotCanvas, master)

plotCanvas.get_tk_widget().pack()

Thank you in advance.

Asked By: thenickname

||

Answers:

You have several different questions here… Let me break them up a bit…

By “hide the axis labels on the first subplot” do you mean the actual axis labels (which aren’t there unless you specify them), the tick labels (i.e. the numbers along the axis), the axis ticks, or all of the above?

If you mean “all of the above”, just do ax.xaxis.set_visible(False) and the same for the y-axis. (ax here would be vdsvgsPlot in your example code above)

If you mean the axis tick labels, just set them to [], i.e.: ax.set_xticklabels([]). (and set_yticklabels for the y-axis)

If you mean the axis ticks, you can do something similar: ax.set_xticks([]) and ax.set_yticks([]) which will turn off both the ticks and ticklabels.

As to the second question, use suptitle to title the entire figure. i.e.: fig.suptitle('whatever') (f.suptitle... in your example code above).

As for how to control the font properties, you can either pass various keyword arguments to suptitle (or anything else that creates text on a plot) or set them after you create the text. For example fig.suptitle('This is a title', size=20, horizontalalignment='left', font='Times', color='red')

In general, I would suggest you look through the various user’s guide, gallery of examples (all of which have the source code included), the pyplot api docs, and the detailed api docs.

Hope that helps!

Answered By: Joe Kington

Try using .xaxis.label.set_visible(False)

Please try this:

import numpy as np
import matplotlib.pyplot as plt

x = np.array([1, 2, 3, 4])
y = np.array([1, 4, 9, 16])
plt.plot(x, y)

plt.xlabel(None)
plt.ylabel(None)

plt.show()

Out:

enter image description here

Answered By: ah bon
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.