How do I fit long title?

matplotlib, python

Solution

Here's what I've finally used:

#!/usr/bin/env python3

import matplotlib
from matplotlib import pyplot as plt
from textwrap import wrap

data = range(5)

fig = plt.figure()
ax = fig.add_subplot(111)

ax.plot(data, data)

title = ax.set_title("\n".join(wrap("Some really really long long long title I really really need - and just can't - just can't - make it any - simply any - shorter - at all.", 60)))

fig.tight_layout()
title.set_y(1.05)
fig.subplots_adjust(top=0.8)

fig.savefig("1.png")

Problem

There's a similar question - but I can't make the solution proposed there work. Here's an example plot with a long title: ``` #!/usr/bin/env python import matplotlib import matplotlib.pyplot import textwrap x = [1,2,3] y = [4,5,6] # initialization: fig = matplotlib.pyplot.figure(figsize=(8.0, 5.0)) # lines: fig.add_subplot(111).plot(x, y) # title: myTitle = "Some really really long long long title I really really need - and just can't - just can't - make it any - simply any - shorter - at all." fig.add_subplot(111).set_title("\n".join(textwrap.wrap(myTitle, 80))) # tight: (matplotlib.pyplot).tight_layout() # saving: fig.savefig("fig.png") ``` it gives a ``` AttributeError: 'module' object has no attribute 'tight_layout' ``` and if I replace `(matplotlib.pyplot).tight_layout()` with `fig.tight_layout()` it gives: ``` AttributeError: 'Figure' object has no attribute 'tight_layout' ``` So my question is - how do I fit the title to the plot?

Original source

Related problems