Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I fit long title?

Tags:

matplotlib

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?

like image 327
Adobe Avatar asked Apr 27 '12 13:04

Adobe


People also ask

How do I wrap a title in Matplotlib?

1 Answer. You can wrap the title using wrap() module.


1 Answers

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") 

enter image description here

like image 174
Adobe Avatar answered Sep 28 '22 12:09

Adobe