8

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?

Maxim Zaslavsky
  • 17,787
  • 30
  • 107
  • 173
  • 2
    For whatever it's worth, I can't reproduce your problems (The suptitle is visible and in a reasonable place for me). What version of matplotlib are you using? It's possible that this is a bug that's been fixed recently. Also, a workaround would be to pass in a different `y` position to `suptitle`. That shouldn't be necessary, though. – Joe Kington May 12 '13 at 01:55
  • Like @JoeKington I can't reproduce your error. – Greg May 12 '13 at 21:41

2 Answers2

1

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)

0

Try this:

fig = plt.figure(constrained_layout = True)
fig.set_figheight(15)
fig.set_figwidth(15)
SunriZe
  • 1
  • 1
  • 1
    Your answer could be improved with additional supporting information. Please [edit] to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers [in the help center](/help/how-to-answer). – Community Jan 29 '23 at 17:45