Maxim Zaslavsky
Maxim Zaslavsky

Reputation: 18067

Figure title (suptitle()) disappears if you specify figure size in Matplotlib

Take, for instance, this code sample:

import numpy as np
import matplotlib.pyplot as plt
f = np.random.random(100)
g = np.random.random(100)
fig = plt.figure(figsize=(15,15))
fig.suptitle('Long Suptitle', fontsize=24)
plt.subplot(121)
plt.plot(f)
plt.title('Very Long Title 1', fontsize=20)
plt.subplot(122)
plt.plot(g)
plt.title('Very Long Title 2', fontsize=20)
plt.subplots_adjust(top=0.85)
plt.show()

Running it shows two subplots with individual titles, but the overall figure title "Long Suptitle" is not visible.

However, if you remove figsize=(15,15), then the overall figure title becomes visible again.

Is it possible to keep the suptitle() text visible while modifying the size of the figure?

Upvotes: 8

Views: 6002

Answers (2)

SunriZe
SunriZe

Reputation: 1

Try this:

fig = plt.figure(constrained_layout = True)
fig.set_figheight(15)
fig.set_figwidth(15)

Upvotes: 0

solitarypotato
solitarypotato

Reputation: 19

I had the same issue. I solved it by combining the plt.figure(figsize=(x,y)) and suptitle into one line:

plt.figure(figsize=(20,10)).suptitle("mytitle",fontsize=20)

(on matplotlib 2.2.2)

Upvotes: 1

Related Questions