This code creates a simple plot with three text labels placed at different vertical and horizontal alignments. You will see how the text aligns differently relative to the given coordinates.
Matplotlib
import matplotlib.pyplot as plt
plt.figure(figsize=(5, 3))
plt.xlim(0, 1)
plt.ylim(0, 1)
# Center aligned text
plt.text(0.5, 0.8, 'Center', ha='center', va='center', fontsize=12, color='blue')
# Left top aligned text
plt.text(0.5, 0.5, 'Left Top', ha='left', va='top', fontsize=12, color='green')
# Right bottom aligned text
plt.text(0.5, 0.2, 'Right Bottom', ha='right', va='bottom', fontsize=12, color='red')
plt.title('Text Alignment Options Example')
plt.show()
OutputSuccess
Important Notes
If you don't specify ha or va, the default is usually ha='left' and va='baseline'.
Use alignment options to avoid overlapping text and improve the visual clarity of your plots.
Summary
Text alignment controls where text appears relative to a point on the plot.
Use ha for horizontal and va for vertical alignment.
Proper alignment makes your charts easier to read and look professional.
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.