How to rotate text in Matplotlib – Python
In this article, we will learn how to rotate text in Matplotlib in Python. Out of the many parameters in matplotlib.text(), there are three main parameters that will define text rotation and how the text will be rotated.
Syntax of matplotlib.text method
Syntax: matplotlib.text(x=0, y=0, text=”, rotation=None, rotation_mode=None, transform_rotates_text=False)
Parameter:
- X, Y: x and y coordinate value
- text: str,Text value
- rotation: float or {‘vertical’, ‘horizontal’}, Defines the angle in degrees between 0-360 for the text to rotate. ‘+ve’ values for rotating the text anticlockwise and ‘-ve’ values rotates the text clockwise. ‘horizontal’ = 0, ‘vertical’ = 90.
- rotation_mode: {None, ‘default’, ‘anchor’}, Specifies the text rotation mode. None or “default”: text is rotated first, then aligned performed.
- anchor: rotation of the text occurs after alignment.
- transform_rotates_text: bool
Return: whether rotations of the transform affect the text direction.
Stepwise Implementation
We can now add these parameters and change their values as we want to rotate the text in the plot.
Step 1: Import the library
Python3
import matplotlib.pyplot as plt
|
Step 2: Set the x and y-axis range.
Python3
plt.xlim( 0 , 3 )
plt.ylim( 0 , 5 )
|
Step 3: Plotting a line for reference.
Python3
plt.plot(( 1 , 4 ), ( 1 , 1 ), 'b' )
|
Step 4: Insert text normally with color.
Python3
plt.text( 1 , 1 , '(1) Geeks_for_Geeks' , color = 'green' )
|
Step 5: Insert text rotated default.
Python3
plt.text( 1 , 2 , '(3) Geeks_for_Geeks 30°' ,
color = 'green' , rotation = 30 ,
rotation_mode = 'anchor' )
|
Step 6: Insert text rotated relatively to plot coordinates.
Python3
plt.text( 1 , 1.5 , '(2) Geeks_for_Geeks 30° relative' ,
color = 'green' , rotation = 30 ,
rotation_mode = 'anchor' ,
transform_rotates_text = True )
|
Complete Code:
In the figure, we can see that, (1) is a normal text placed horizontally in the plot, (2) is a text rotated 30o with respect to plot coordinates, and (3) is a text rotated 30o by default.
Python3
import matplotlib.pyplot as plt
plt.xlim( 0 , 3 )
plt.ylim( 0 , 5 )
plt.text( 1 , 1 , '(1) Geeks_for_Geeks' , color = 'green' )
plt.text( 1 , 2 , '(3) Geeks_for_Geeks 30°' , color = 'green' ,
rotation = 30 , rotation_mode = 'anchor' )
plt.text( 1 , 1.5 , '(2) Geeks_for_Geeks 30° relative' ,
color = 'green' ,
rotation = 30 , rotation_mode = 'anchor' ,
transform_rotates_text = True )
plt.show()
|
Output:
Last Updated :
12 Dec, 2022
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...