Bird
Raised Fist0
Matplotlibdata~10 mins

Marker size variation in Matplotlib - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Marker size variation
Start
↓
Define data points
↓
Define marker sizes
↓
Call scatter plot with sizes
↓
Plot displays with varied marker sizes
↓
End
This flow shows how data points and their marker sizes are defined, then plotted with varying sizes using scatter.
Execution Sample
Matplotlib
import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [10, 20, 25, 30]
sizes = [20, 50, 80, 200]
plt.scatter(x, y, s=sizes)
plt.show()
Plot 4 points with marker sizes varying as per the sizes list.
Execution Table
StepVariable/ActionValue/DescriptionEffect on Plot
1x[1, 2, 3, 4]Defines x-coordinates of points
2y[10, 20, 25, 30]Defines y-coordinates of points
3sizes[20, 50, 80, 200]Defines marker sizes for each point
4plt.scatter(x, y, s=sizes)Scatter plot called with sizesPoints plotted with sizes 20, 50, 80, 200 respectively
5plt.show()Plot window opensVisual display of points with varied marker sizes
6End-Plotting complete
💡 All points plotted with specified sizes; execution ends after plot display
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3Final
xundefined[1, 2, 3, 4][1, 2, 3, 4][1, 2, 3, 4][1, 2, 3, 4]
yundefinedundefined[10, 20, 25, 30][10, 20, 25, 30][10, 20, 25, 30]
sizesundefinedundefinedundefined[20, 50, 80, 200][20, 50, 80, 200]
Key Moments - 2 Insights
Why do marker sizes look different even though the points are plotted with the same x and y?
Because the 'sizes' list assigns different size values to each point, as shown in execution_table step 3 and 4, the scatter plot uses these sizes to vary marker sizes.
What happens if the sizes list has fewer elements than x and y?
Matplotlib will raise an error because each point needs a corresponding size. This is implied by the need for matching lengths in execution_table steps 1-4.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table at step 3, what does the 'sizes' variable represent?
ASizes of markers for each point
BCoordinates of points on y-axis
CCoordinates of points on x-axis
DColors of markers
💡 Hint
Refer to execution_table row with step 3 describing 'sizes' as marker sizes
At which step in the execution_table are the points actually drawn with varied sizes?
AStep 2
BStep 5
CStep 4
DStep 1
💡 Hint
Step 4 calls plt.scatter which plots points with sizes
If the sizes list was changed to [100, 100, 100, 100], how would the plot change?
APoints would disappear
BAll points would have the same size
CPoints would have random sizes
DPlot would show error
💡 Hint
Check variable_tracker for sizes and how it affects marker size in execution_table step 4
Concept Snapshot
Marker size variation in matplotlib scatter plot:
- Use 's' parameter to set marker sizes
- Provide a list of sizes matching data points
- Larger values mean bigger markers
- Sizes control visual emphasis of points
- Syntax: plt.scatter(x, y, s=sizes)
Full Transcript
This example shows how to vary marker sizes in a scatter plot using matplotlib. We define x and y coordinates for points, then create a sizes list with different values. Calling plt.scatter with s=sizes plots points with marker sizes matching the list. The execution table traces each step: defining variables, calling scatter, and showing the plot. Variable tracker shows how x, y, and sizes are set before plotting. Key moments clarify why sizes affect marker appearance and the importance of matching list lengths. The quiz tests understanding of sizes role, plotting step, and effect of uniform sizes. This helps beginners see how marker size variation works visually and step-by-step.

Practice

(1/5)
1. What does the s parameter control in the plt.scatter() function in matplotlib?
easy
A. The size of the markers in the scatter plot
B. The color of the markers
C. The shape of the markers
D. The transparency of the markers

Solution

  1. Step 1: Understand the role of plt.scatter()

    The plt.scatter() function creates scatter plots where each point can have different visual properties.
  2. Step 2: Identify the s parameter purpose

    The s parameter specifically sets the size of each marker in the scatter plot, either as a single value or a list of sizes.
  3. Final Answer:

    The size of the markers in the scatter plot -> Option A
  4. Quick Check:

    s controls marker size [OK]
Hint: Remember: 's' stands for size in scatter plots [OK]
Common Mistakes:
  • Confusing 's' with color or shape parameters
  • Thinking 's' controls transparency
  • Assuming 's' changes marker style
2. Which of the following is the correct way to set marker sizes to 50 for all points in a scatter plot using matplotlib?
easy
A. plt.scatter(x, y, size=50)
B. plt.scatter(x, y, s=50)
C. plt.scatter(x, y, marker_size=50)
D. plt.scatter(x, y, sizes=50)

Solution

  1. Step 1: Recall the parameter name for marker size

    The correct parameter to set marker size in plt.scatter() is s.
  2. Step 2: Check the syntax for setting size

    Using s=50 sets all markers to size 50. Other options use incorrect parameter names.
  3. Final Answer:

    plt.scatter(x, y, s=50) -> Option B
  4. Quick Check:

    Use s for size [OK]
Hint: Use s to set size, not 'size' or 'sizes' [OK]
Common Mistakes:
  • Using 'size' or 'sizes' instead of 's'
  • Trying to set marker size with 'marker_size'
  • Syntax errors from wrong parameter names
3. What will be the output marker sizes for the scatter plot from this code?
import matplotlib.pyplot as plt
x = [1, 2, 3]
y = [4, 5, 6]
sizes = [20, 50, 80]
plt.scatter(x, y, s=sizes)
plt.show()
medium
A. All markers will have size 20
B. Code will raise an error due to wrong size input
C. Markers will have default size because list is invalid
D. Markers will have sizes 20, 50, and 80 respectively

Solution

  1. Step 1: Understand s with list input

    The s parameter accepts a list to assign different sizes to each marker.
  2. Step 2: Match sizes to points

    Since sizes = [20, 50, 80], the first point gets size 20, second 50, third 80.
  3. Final Answer:

    Markers will have sizes 20, 50, and 80 respectively -> Option D
  4. Quick Check:

    List in s sets sizes per point [OK]
Hint: List in s sets sizes point-wise [OK]
Common Mistakes:
  • Assuming all markers get the first size
  • Thinking list input causes error
  • Confusing s with color list
4. Identify the error in this code snippet that tries to vary marker sizes:
import matplotlib.pyplot as plt
x = [1, 2, 3]
y = [4, 5, 6]
sizes = [30, 60]
plt.scatter(x, y, s=sizes)
plt.show()
medium
A. The plt.scatter function is misspelled
B. The s parameter cannot accept lists
C. The sizes list length does not match x and y length
D. The variable sizes is not defined

Solution

  1. Step 1: Check lengths of data and sizes

    The x and y lists have 3 points, but sizes list has only 2 values.
  2. Step 2: Understand size list requirement

    The s list must match the number of points; otherwise, matplotlib raises a ValueError.
  3. Final Answer:

    The sizes list length does not match x and y length -> Option C
  4. Quick Check:

    Sizes list length must equal data points [OK]
Hint: Match sizes list length to data points [OK]
Common Mistakes:
  • Ignoring size list length mismatch
  • Thinking s can't be a list
  • Assuming matplotlib auto-fills missing sizes
5. You want to create a scatter plot where marker sizes represent the population of cities. Given:
cities = ['A', 'B', 'C']
population = [1000, 5000, 3000]
x = [1, 2, 3]
y = [4, 5, 6]

Which code correctly scales the population to marker sizes and plots them?
hard
A. plt.scatter(x, y, s=[p*10 for p in population])
B. plt.scatter(x, y, s=[p/10 for p in population])
C. plt.scatter(x, y, s=population)
D. plt.scatter(x, y, s=[p**2 for p in population])

Solution

  1. Step 1: Understand marker size scaling

    Population values are large; directly using them as sizes will create huge markers.
  2. Step 2: Choose appropriate scaling

    Multiplying population by 10 scales sizes visibly but keeps them reasonable. Dividing by 10 makes markers too small; squaring makes them too large.
  3. Final Answer:

    plt.scatter(x, y, s=[p*10 for p in population]) -> Option A
  4. Quick Check:

    Scale sizes for visibility using multiplication [OK]
Hint: Scale data to reasonable marker sizes by multiplying [OK]
Common Mistakes:
  • Using raw large values causing huge markers
  • Dividing sizes too much making markers tiny
  • Using squared sizes causing disproportionate markers
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