Bird
Raised Fist0
Matplotlibdata~5 mins

Multi-line text in Matplotlib

Choose your learning style10 modes available
Introduction

Multi-line text helps you add clear, organized labels or notes on your charts. It makes your graphs easier to understand by breaking long text into smaller parts.

You want to add a title with multiple lines to explain your chart.
You need to label parts of a graph with detailed descriptions.
You want to add a legend or annotation that has more than one sentence.
You want to display instructions or notes directly on the plot.
Syntax
Matplotlib
plt.text(x, y, 'Line 1\nLine 2\nLine 3', fontsize=12, color='blue')

Use \n inside the string to create new lines.

x and y set the position of the text on the plot.

Examples
This adds two lines of text centered at position (0.5, 0.5).
Matplotlib
plt.text(0.5, 0.5, 'Hello\nWorld', fontsize=14, ha='center')
This places three lines of red text near the top-left corner.
Matplotlib
plt.text(0.1, 0.9, 'Line 1\nLine 2\nLine 3', color='red')
Sample Program

This code draws a simple line plot and adds green multi-line text at the point (2, 5) on the graph.

Matplotlib
import matplotlib.pyplot as plt

plt.figure(figsize=(5, 3))
plt.plot([1, 2, 3], [4, 5, 6])

# Add multi-line text at position (2, 5)
plt.text(2, 5, 'This is line 1\nThis is line 2\nThis is line 3', fontsize=12, color='green')

plt.title('Example of Multi-line Text')
plt.show()
OutputSuccess
Important Notes

Make sure the text position (x, y) is inside the plot area to see the text.

You can customize font size, color, and alignment for better readability.

Summary

Use \n inside the text string to create multiple lines.

Position the text with x and y coordinates on the plot.

Multi-line text helps make your charts clearer and more informative.

Practice

(1/5)
1. What does the \n character do inside a text string in matplotlib?
easy
A. It adds a space between words.
B. It changes the text color.
C. It creates a new line, splitting the text into multiple lines.
D. It makes the text bold.

Solution

  1. Step 1: Understand the role of \n in strings

    The \n character is a newline character that breaks text into multiple lines.
  2. Step 2: Apply this to matplotlib text

    Using \n inside a string in matplotlib text splits the text into separate lines on the plot.
  3. Final Answer:

    It creates a new line, splitting the text into multiple lines. -> Option C
  4. Quick Check:

    Newline character = creates new line [OK]
Hint: Remember \n means new line inside text strings [OK]
Common Mistakes:
  • Thinking \n adds space instead of new line
  • Confusing \n with color or style commands
  • Using \n outside text strings
2. Which of the following is the correct way to add multi-line text at position (2, 3) in a matplotlib plot?
easy
A. plt.text(2, 3, 'Line1\nLine2')
B. plt.text('2, 3', 'Line1\nLine2')
C. plt.text(2, 3, 'Line1\Line2')
D. plt.text(2, 3, 'Line1/Line2')

Solution

  1. Step 1: Check the syntax of plt.text()

    The function plt.text(x, y, text) requires numeric x and y coordinates and a string for text.
  2. Step 2: Identify the newline character

    The newline character is \n, so 'Line1\nLine2' correctly creates two lines.
  3. Final Answer:

    plt.text(2, 3, 'Line1\nLine2') -> Option A
  4. Quick Check:

    Correct syntax with \n = plt.text(2, 3, 'Line1\nLine2') [OK]
Hint: Use plt.text(x, y, 'line1\nline2') for multi-line text [OK]
Common Mistakes:
  • Passing coordinates as a string instead of numbers
  • Using wrong escape characters like \ or /
  • Missing the newline character \n
3. What will the following code display on the plot?
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [4, 5, 6])
plt.text(2, 5, 'Hello\nWorld', fontsize=12, color='red')
plt.show()
medium
A. A plot with red text 'Hello' on one line and 'World' below it at position (2,5).
B. A plot with red text 'Hello World' on a single line at position (2,5).
C. A plot with blue text 'Hello\nWorld' at position (2,5).
D. A plot with no text displayed.

Solution

  1. Step 1: Understand plt.text parameters

    The text is placed at (2,5) with font size 12 and color red. The string contains a newline \n.
  2. Step 2: Interpret the newline in text

    The \n splits 'Hello' and 'World' into two lines, so text appears as two lines stacked vertically.
  3. Final Answer:

    A plot with red text 'Hello' on one line and 'World' below it at position (2,5). -> Option A
  4. Quick Check:

    \n splits lines, color='red' applies [OK]
Hint: Look for \n to split lines and color param for text color [OK]
Common Mistakes:
  • Ignoring the newline and expecting one line
  • Confusing color red with blue
  • Thinking text won't appear without plt.show()
4. Identify the error in this code snippet that tries to add multi-line text:
plt.text(1, 2, 'Line1\Line2', fontsize=10)
medium
A. The text string is missing quotes.
B. The fontsize parameter is invalid.
C. The coordinates (1, 2) are out of plot range.
D. The newline character is incorrect; it should be '\n' not '\'.

Solution

  1. Step 1: Check the newline character usage

    The code uses '\' instead of '\n' to create a new line, which is incorrect.
  2. Step 2: Confirm other parameters

    Fontsize is valid, coordinates are numeric, and text is quoted properly.
  3. Final Answer:

    The newline character is incorrect; it should be '\n' not '\'. -> Option D
  4. Quick Check:

    Use \n for new lines, not single backslash [OK]
Hint: Newline must be \n, not just \ alone [OK]
Common Mistakes:
  • Using single backslash instead of \n
  • Assuming fontsize causes error
  • Thinking coordinates must be strings
5. You want to add a multi-line label on a plot at (0.5, 0.5) with the text:
"Temperature:\nHigh: 30°C\nLow: 15°C"
and make sure the text is centered and blue. Which code snippet achieves this?
hard
A. plt.text(0.5, 0.5, 'Temperature:\nHigh: 30°C\nLow: 15°C', fontsize=14, ha='center')
B. plt.text(0.5, 0.5, 'Temperature:\nHigh: 30°C\nLow: 15°C', color='blue', fontsize=14, ha='center')
C. plt.text(0.5, 0.5, 'Temperature\nHigh: 30°C\nLow: 15°C', color='red', fontsize=14, ha='left')
D. plt.text(0.5, 0.5, 'Temperature\nHigh: 30°C\nLow: 15°C', color='blue', fontsize=10, ha='right')

Solution

  1. Step 1: Check the text string for new lines

    The text uses '\n' correctly to create multiple lines.
  2. Step 2: Verify color, font size, and alignment

    Color is blue, fontsize is 14, and horizontal alignment (ha) is 'center' as required.
  3. Final Answer:

    plt.text(0.5, 0.5, 'Temperature:\nHigh: 30°C\nLow: 15°C', color='blue', fontsize=14, ha='center') -> Option B
  4. Quick Check:

    Correct text, color blue, center align = plt.text(0.5, 0.5, 'Temperature:\nHigh: 30°C\nLow: 15°C', color='blue', fontsize=14, ha='center') [OK]
Hint: Use ha='center' and color='blue' for centered blue multi-line text [OK]
Common Mistakes:
  • Using wrong color or alignment
  • Missing \n for new lines
  • Setting fontsize too small or default
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard