MoTSCHIGGE
MoTSCHIGGE

Reputation: 989

matplotlib.pyplot.subplots() - how to set the name of the figure?

When I create a single plot using the figure()-function of PyPlot, I can set the name of the appearing window using a string as argument:

import matplotlib.pyplot as plt
figure = plt.figure('MyName')

The function plt.subplots() doesn´t accept strings as first argument. For example:

plt.subplots(2,2)  # for creating a window with 4 subplots

So how can I set the name of the figure?

Upvotes: 20

Views: 36413

Answers (3)

jrd1
jrd1

Reputation: 10726

Taken from the docs:

import matplotlib.pyplot as plt

#...

# Just a figure and one subplot
f, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('Simple plot')

And, to change the title of the Window:

import matplotlib.pyplot as plt 
fig = plt.figure() 
fig.canvas.manager.set_window_title('My Window Title') 
plt.show() 

If you're using a Matplotlib version < 3.4, use: fig.canvas.set_window_title('My Windows Title')

Reference to deprecation (kudos to KaiserKatze).

Upvotes: 25

farleytpm
farleytpm

Reputation: 348

plt.subplots() passes additional keyword arguments to plt.figure. Therefore, the num keyword will do what you want.

fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2, num='MyName')

You can also set figsize and dpi etc. in this way too (see plt.figure docs).

Upvotes: 22

user32882
user32882

Reputation: 5917

You can also do this:

f, axarr = plt.subplots(2,2, num = PlotName)

where PlotName is a string and thus you can generate a window name upon instantiation

Upvotes: 0

Related Questions