We use ax.text to add words or labels directly on a plot. This helps explain or highlight parts of the graph.
Text placement with ax.text in Matplotlib
ax.text(x, y, s, fontdict=None, **kwargs)x and y are the coordinates where the text will appear.
s is the string of text you want to show.
ax.text(2, 3, 'Hello')
ax.text(0.5, 0.5, 'Center', fontsize=14, color='red')
ax.text(1, 1, 'Top Left', ha='left', va='top')
This code draws a simple line plot with points. It adds blue text labeling the point (1,1) and green text labeling the peak at (2,4). The text is placed exactly where we want on the plot.
import matplotlib.pyplot as plt fig, ax = plt.subplots() ax.plot([0, 1, 2], [0, 1, 4], marker='o') # Add text at point (1,1) ax.text(1, 1, 'Point (1,1)', fontsize=12, color='blue') # Add text at coordinates (2,4) with center alignment ax.text(2, 4, 'Peak', ha='center', va='bottom', fontsize=10, color='green') plt.show()
You can control text alignment with ha (horizontal) and va (vertical) parameters.
Text color, font size, and style can be changed using keyword arguments like color and fontsize.
Coordinates are in data units by default, matching the plot's axes.
ax.text lets you add custom text anywhere on a plot.
You specify the position with x and y coordinates.
You can style the text with color, size, and alignment options.
Practice
ax.text function do in matplotlib?Solution
Step 1: Understand the purpose of ax.text
Theax.textfunction is used to add text labels at specific positions on a plot using x and y coordinates.Step 2: Compare with other options
Other options describe different matplotlib functions: creating figures, drawing lines, or changing background color, which are not whatax.textdoes.Final Answer:
It places text at specified x and y coordinates on the plot. -> Option BQuick Check:
ax.text adds text labels = C [OK]
- Confusing ax.text with plot or figure functions
- Thinking ax.text changes plot colors
- Assuming ax.text draws shapes
Solution
Step 1: Recall ax.text parameter order
The correct order isax.text(x, y, text), so x=2, y=3, text='Hello' meansax.text(2, 3, 'Hello').Step 2: Check other options
ax.text('Hello', 2, 3) swaps text and coordinates, ax.text(x=3, y=2, text='Hello') uses wrong parameter names, ax.text(3, 2, 'Hello') swaps x and y values.Final Answer:
ax.text(2, 3, 'Hello') -> Option AQuick Check:
ax.text(x, y, text) = A [OK]
- Swapping x and y coordinates
- Putting text before coordinates
- Using wrong parameter names
import matplotlib.pyplot as plt fig, ax = plt.subplots() ax.plot([1, 2, 3], [4, 5, 6]) ax.text(2, 5, 'Center', fontsize=12, color='red') plt.show()
Solution
Step 1: Analyze ax.text parameters
The code places text 'Center' at (2, 5) with font size 12 and color red, which is valid syntax.Step 2: Understand matplotlib behavior
Text appears on the plot at the given coordinates with specified style. Color names are case-insensitive, so 'red' works fine.Final Answer:
A red text 'Center' at point (2, 5) on the plot. -> Option DQuick Check:
ax.text with color='red' shows red text = A [OK]
- Thinking fontsize is mandatory to show text
- Assuming color must be uppercase
- Expecting text at wrong coordinates
fig, ax = plt.subplots() ax.text(1, 2, fontsize='large') plt.show()
Solution
Step 1: Check ax.text parameters
Matplotlib'sax.textrequires three positional arguments: x, y, and text (s). The code provides only x=1, y=2, then a keyword argument, missing the text.Step 2: Verify other options
Numbers for x/y are correct,fontsize='large'is valid, andplt.show()order is fine.Final Answer:
The text argument is missing. -> Option CQuick Check:
ax.text requires x, y, text = C [OK]
- Omitting the text argument
- Confusing parameter order
- Calling plt.show() too early
import matplotlib.pyplot as plt x = [1, 2, 3, 4] y = [2, 5, 1, 7] fig, ax = plt.subplots() ax.plot(x, y, marker='o') # Add text here plt.show()
Which code correctly places the label 0.3 units above the highest point?
Solution
Step 1: Identify highest point coordinates
The highest y value is 7 at x=4.Step 2: Place text 0.3 units above with correct alignment
To place text above, y=7.3 is correct. Use vertical alignmentva='bottom'so text bottom aligns at 7.3, placing text above the point. Horizontal alignmentha='center'centers text horizontally at x=4.Final Answer:
ax.text(4, 7.3, 'Max Point', va='bottom', ha='center') -> Option AQuick Check:
Text above point uses y+offset and va='bottom' = B [OK]
- Using va='top' places text below the coordinate
- Not adding offset to y coordinate
- Misaligning text horizontally
Ready to prove it?
Pass the test and this pattern moves unknown
