📖 Scenario: You are creating a simple plot to display a message. You want to control how the text is aligned inside the plot area to make it look neat and clear.
🎯 Goal: Learn how to use horizontalalignment and verticalalignment options in matplotlib's text() function to position text inside a plot.
📋 What You'll Learn
Create a matplotlib plot
Add text with specific horizontal and vertical alignment
Display the plot with the aligned text
💡 Why This Matters
🌍 Real World
Text alignment is important in data visualization to make charts and graphs clear and easy to read.
💼 Career
Data scientists and analysts often customize text placement in plots to create professional reports and presentations.
Progress0 / 4 steps
1
Create a basic plot
Import matplotlib.pyplot as plt and create a figure and axis using plt.subplots(). Store the result in variables fig and ax.
Matplotlib
Hint
Use import matplotlib.pyplot as plt to import the plotting library.
Use plt.subplots() to create a figure and axis.
2
Set up text position and alignment variables
Create variables x and y with values 0.5 and 0.5 respectively to represent the center of the plot. Also create variables h_align and v_align with values 'center' and 'center' to set horizontal and vertical alignment.
Matplotlib
Hint
Set x and y to 0.5 to place text in the middle.
Set h_align and v_align to 'center' to align text in the center horizontally and vertically.
3
Add text with alignment options
Use ax.text() to add the text 'Hello, aligned text!' at position (x, y) with horizontalalignment=h_align and verticalalignment=v_align. Also set fontsize=14.
Matplotlib
Hint
Use ax.text() with parameters x, y, and the text string.
Pass horizontalalignment=h_align and verticalalignment=v_align to align the text.
Set fontsize=14 for better visibility.
4
Display the plot
Use plt.show() to display the plot with the aligned text.
Matplotlib
Hint
Call plt.show() to open the plot window and see the text.
Practice
(1/5)
1. In matplotlib, which parameter controls the horizontal alignment of text relative to its (x, y) position?
easy
A. va
B. ha
C. align
D. position
Solution
Step 1: Understand text alignment parameters
Matplotlib uses 'ha' for horizontal alignment and 'va' for vertical alignment.
Step 2: Identify horizontal alignment parameter
The parameter 'ha' stands for horizontal alignment, controlling left, center, or right placement.
Final Answer:
ha -> Option B
Quick Check:
Horizontal alignment = ha [OK]
Hint: Remember 'h' in 'ha' means horizontal [OK]
Common Mistakes:
Confusing 'ha' with 'va'
Using 'align' which is not a valid parameter
Assuming 'position' controls alignment
2. Which of the following is the correct way to set vertical alignment to 'top' in matplotlib's text() function?
easy
A. plt.text(x, y, 'label', va='top')
B. plt.text(x, y, 'label', ha='top')
C. plt.text(x, y, 'label', valign='top')
D. plt.text(x, y, 'label', vertical='top')
Solution
Step 1: Recall vertical alignment parameter
Vertical alignment is controlled by 'va' in matplotlib's text function.
Step 2: Check correct syntax for setting 'top'
Using va='top' correctly sets vertical alignment to top.
Final Answer:
plt.text(x, y, 'label', va='top') -> Option A
Quick Check:
Vertical alignment = va [OK]
Hint: Use 'va' for vertical alignment, not 'ha' or others [OK]
Common Mistakes:
Using 'ha' instead of 'va' for vertical alignment
Using non-existent parameters like 'valign' or 'vertical'
Misspelling parameter names
3. What will be the horizontal alignment of the text in this code snippet?
import matplotlib.pyplot as plt
plt.text(0.5, 0.5, 'Center', ha='center', va='bottom')
plt.show()
medium
A. Center aligned
B. Right aligned
C. Left aligned
D. Justified
Solution
Step 1: Analyze the 'ha' parameter in the code
The code sets ha='center', which means horizontal alignment is centered on the x position.
Step 2: Understand the effect of ha='center'
The text will be horizontally centered at x=0.5 on the plot.
Final Answer:
Center aligned -> Option A
Quick Check:
ha='center' means center aligned [OK]
Hint: ha='center' means text is centered horizontally [OK]
Common Mistakes:
Confusing 'ha' with 'va' and expecting vertical alignment
Assuming default alignment is left
Thinking 'ha'='center' means justified
4. Identify the error in this matplotlib code snippet:
import matplotlib.pyplot as plt
plt.text(0.3, 0.7, 'Hello', ha='middle', va='center')
plt.show()
medium
A. va parameter should be 'middle' instead of 'center'
B. Missing plt.show() call
C. Incorrect order of parameters
D. Invalid value 'middle' for ha parameter
Solution
Step 1: Check valid values for 'ha'
Valid 'ha' values are 'left', 'center', and 'right'. 'middle' is invalid.
Step 2: Verify other parameters and syntax
va='center' is valid, plt.show() is present, and parameter order does not matter.
Final Answer:
Invalid value 'middle' for ha parameter -> Option D
Quick Check:
ha must be left, center, or right [OK]
Hint: Use only 'left', 'center', or 'right' for ha [OK]
Common Mistakes:
Using 'middle' instead of 'center' for ha
Thinking parameter order matters
Ignoring error messages about invalid parameter values
5. You want to place a label exactly at the top-right corner of a plot using plt.text(). Which combination of ha and va will correctly align the text so that the label's top-right corner is at the given (x, y) coordinates?
hard
A. ha='left', va='bottom'
B. ha='center', va='center'
C. ha='right', va='top'
D. ha='right', va='bottom'
Solution
Step 1: Understand alignment relative to (x, y)
ha='right' aligns the text's right edge to x, va='top' aligns the text's top edge to y.
Step 2: Match alignment to top-right corner placement
To place text so its top-right corner is at (x, y), use ha='right' and va='top'.
Final Answer:
ha='right', va='top' -> Option C
Quick Check:
Right and top align text corner to (x, y) [OK]
Hint: Right + top aligns text's top-right corner [OK]
Common Mistakes:
Using ha='left' or va='bottom' which aligns opposite corners
Assuming center alignment places corner at (x, y)
Mixing up horizontal and vertical alignment parameters
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.