Open In App

Text box with line wrapping in Matplotlib

Matplotlib is a majorly used python comprehensive library for visualization(static, animated, creative & interactive). It provides a wide range of methods for annotating and describing the plot through text. Also, it can wrap the text automatically.

Text is used in a plot for various purposes Aside from describing the plot, the other use for text is to provide general notes and the reader’s attention. Matplotlib provides methods to add text to a plot.



Approach

Syntax : 

matplotlib.pyplot.text(x, y, string, fontdict, withdash, **kwargs)

Example :






import matplotlib.pyplot as plt
  
  
x = [1, 2, 3, 4, 5]
y = [50, 40, 40, 80, 20]
y2 = [80, 20, 20, 50, 60]
  
plt.plot(x, y, 'g', label='BMW', linewidth=5)
plt.plot(x, y2, 'c', label='Ferrari', linewidth=5)
  
plt.title('Car details in line plot')
plt.ylabel('Distance in kms')
plt.xlabel('Days')
  
# Text on Ferrari line plot
plt.text(2.5, 23, "Ferrari")
  
# Text on BMW line plot
plt.text(2.5, 43, "BMW")
plt.legend()

Output :

Syntax :

 matplotlib.pyplot.figtext(x, y, string, fontdict=None, **kwargs)

Example :




import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [50, 40, 40, 80, 20]
y2 = [80, 20, 20, 50, 60]
  
plt.plot(x, y, 'g', label='BMW', linewidth=5)
plt.plot(x, y2, 'c', label='Ferrari', linewidth=5)
  
plt.title('Car details in line plot')
plt.ylabel('Distance in kms')
plt.xlabel('Days')
plt.figtext(0.4, 0.2, "Ferrari")  
plt.figtext(0.35, 0.4, "BMW")  
plt.legend()

Output :

Syntax :

  matplotlib.pyplot.annotate( string, xy, xytext, arrowprops, **kwargs)

Example 1:




import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [50, 40, 40, 80, 20]
y2 = [80, 20, 20, 50, 60]
  
plt.plot(x, y, 'g', label='BMW', linewidth=5)
plt.plot(x, y2, 'c', label='Ferrari', linewidth=5)
  
plt.title('Car details in line plot')
plt.ylabel('Distance in kms')
plt.xlabel('Days')
  
# Text on Ferrari line plot
plt.annotate('BMW', xy=(2.5, 40), xytext=(3, 55), arrowprops=dict(
               width=1, headwidth=8, facecolor='black', shrink=0.05))  
  
plt.legend()

Output :

Example 2: Text box with line wrapping using pyplot.text() :




import matplotlib.pyplot as plt
  
fig = plt.figure()
plt.axis([0, 10, 0, 10])
t = ("Welcome to GeeksforGeeks")
plt.text(5, 8, t, fontsize=18, style='oblique', ha='center',
         va='top', wrap=True)
  
plt.show()

Output :

 We can rotate the text by using rotation parameter.

Example 3:




import matplotlib.pyplot as plt
  
fig = plt.figure()
plt.axis([0, 10, 0, 10])
t = ("Welcome to GeeksforGeeks")
  
plt.text(5, 8, t, fontsize=18, rotation=15, style='oblique', ha='center',
         va='top', wrap=True# rotate the text 15 degree.
  
plt.show()

Output :


Article Tags :