📖 Scenario: You are creating a simple plot to show sales data for two products. You want to add a multi-line text note on the plot to explain the data.
🎯 Goal: Build a plot with two lines and add a multi-line text annotation inside the plot area.
📋 What You'll Learn
Create a plot with two lines representing sales data.
Add a multi-line text note inside the plot using plt.text.
Use newline characters \n to create multiple lines in the text.
💡 Why This Matters
🌍 Real World
Adding multi-line text notes on plots helps explain data clearly in reports and presentations.
💼 Career
Data scientists and analysts often annotate plots with multi-line text to highlight insights or provide context.
Progress0 / 4 steps
1
Create sales data lists
Create two lists called sales_product_a and sales_product_b with these exact values: [10, 15, 20, 25] and [12, 18, 22, 28] respectively.
Matplotlib
Hint
Use square brackets to create lists with the exact numbers given.
2
Create x-axis values
Create a list called months with these exact values: [1, 2, 3, 4] representing four months.
Matplotlib
Hint
Use a list with the numbers 1 to 4 for months.
3
Plot the sales data lines
Import matplotlib.pyplot as plt. Use plt.plot to plot months vs sales_product_a and months vs sales_product_b. Add labels 'Product A' and 'Product B' respectively.
Matplotlib
Hint
Use plt.plot(x, y, label='name') to plot lines with labels.
4
Add multi-line text and show plot
Use plt.text to add multi-line text at position (2, 15) with the exact text: 'Sales Data\nProduct A and B'. Then add plt.legend() and plt.show() to display the plot.
Matplotlib
Hint
Use plt.text(x, y, 'line1\nline2') to add multi-line text.
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
Step 1: Understand the role of \n in strings
The \n character is a newline character that breaks text into multiple lines.
Step 2: Apply this to matplotlib text
Using \n inside a string in matplotlib text splits the text into separate lines on the plot.
Final Answer:
It creates a new line, splitting the text into multiple lines. -> Option C
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
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.
Step 2: Identify the newline character
The newline character is \n, so 'Line1\nLine2' correctly creates two lines.
Final Answer:
plt.text(2, 3, 'Line1\nLine2') -> Option A
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?
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
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.
Step 2: Interpret the newline in text
The \n splits 'Hello' and 'World' into two lines, so text appears as two lines stacked vertically.
Final Answer:
A plot with red text 'Hello' on one line and 'World' below it at position (2,5). -> Option A
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
Step 1: Check the newline character usage
The code uses '\' instead of '\n' to create a new line, which is incorrect.
Step 2: Confirm other parameters
Fontsize is valid, coordinates are numeric, and text is quoted properly.
Final Answer:
The newline character is incorrect; it should be '\n' not '\'. -> Option D
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
Step 1: Check the text string for new lines
The text uses '\n' correctly to create multiple lines.
Step 2: Verify color, font size, and alignment
Color is blue, fontsize is 14, and horizontal alignment (ha) is 'center' as required.