Use set_minor_locator to control small ticks between big ticks.
Examples
This example sets major ticks on the x-axis every 2 units and minor ticks every 0.5 units.
Matplotlib
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator
fig, ax = plt.subplots()
ax.plot([0, 10], [0, 100])
ax.xaxis.set_major_locator(MultipleLocator(2)) # Major ticks every 2 units
ax.xaxis.set_minor_locator(MultipleLocator(0.5)) # Minor ticks every 0.5 units
plt.show()
This example sets major ticks on the y-axis every 5 units and automatically adds 4 minor ticks between them.
Matplotlib
import matplotlib.pyplot as plt
from matplotlib.ticker import AutoMinorLocator
fig, ax = plt.subplots()
ax.plot([0, 5], [0, 25])
ax.yaxis.set_major_locator(MultipleLocator(5)) # Major ticks every 5 units
ax.yaxis.set_minor_locator(AutoMinorLocator(4)) # 4 minor ticks between major ticks
plt.show()
Sample Program
This program plots a simple curve and sets major and minor ticks on both axes. It also shows grids for both major and minor ticks with different styles.
Matplotlib
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator, AutoMinorLocator
fig, ax = plt.subplots()
# Plot some data
ax.plot([0, 1, 2, 3, 4, 5], [0, 1, 4, 9, 16, 25])
# Set major ticks on x-axis every 1 unit
ax.xaxis.set_major_locator(MultipleLocator(1))
# Set minor ticks on x-axis every 0.2 units
ax.xaxis.set_minor_locator(MultipleLocator(0.2))
# Set major ticks on y-axis every 5 units
ax.yaxis.set_major_locator(MultipleLocator(5))
# Set 4 minor ticks between major ticks on y-axis
ax.yaxis.set_minor_locator(AutoMinorLocator(4))
# Show grid for major and minor ticks
ax.grid(which='major', color='blue', linestyle='-')
ax.grid(which='minor', color='gray', linestyle=':')
plt.show()
OutputSuccess
Important Notes
Minor ticks do not have labels by default.
You can use different locator classes like MultipleLocator or AutoMinorLocator to control tick placement.
Adding grids for minor ticks can help see the smaller divisions clearly.
Summary
Major ticks mark main points on the axes.
Minor ticks mark smaller divisions between major ticks.
You can customize both using locator functions in matplotlib.
Practice
(1/5)
1. What is the main purpose of major ticks in a matplotlib plot?
easy
A. To change the color of the plot
B. To add grid lines to the plot
C. To label the plot title
D. To mark the main points on the axes
Solution
Step 1: Understand the role of major ticks
Major ticks are the primary markers on the axes that show key values.
Step 2: Differentiate from other elements
Grid lines and titles are different plot features, not related to major ticks.
Final Answer:
To mark the main points on the axes -> Option D
Quick Check:
Major ticks = main axis points [OK]
Hint: Major ticks show main axis points clearly [OK]
Common Mistakes:
Confusing major ticks with grid lines
Thinking major ticks change plot colors
Mixing up ticks with plot titles
2. Which of the following is the correct way to set minor ticks on the x-axis using matplotlib?
easy
A. plt.minorticks_on()
B. plt.set_minor_ticks()
C. plt.minor_ticks()
D. plt.set_minor()
Solution
Step 1: Recall matplotlib minor ticks method
The correct method to enable minor ticks is plt.minorticks_on().
Step 2: Check other options
Other options are not valid matplotlib functions and will cause errors.
Final Answer:
plt.minorticks_on() -> Option A
Quick Check:
Enable minor ticks = plt.minorticks_on() [OK]
Hint: Use plt.minorticks_on() to enable minor ticks [OK]
Common Mistakes:
Using non-existent functions like plt.set_minor_ticks()
Confusing minor ticks enabling with setting labels
Forgetting to call the function
3. What will be the effect of this code snippet?
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator
fig, ax = plt.subplots()
ax.plot([1, 2, 3, 4])
ax.xaxis.set_major_locator(MultipleLocator(2))
ax.xaxis.set_minor_locator(MultipleLocator(0.5))
ax.minorticks_on()
plt.show()
medium
A. Major ticks every 2 units, minor ticks every 0.5 units on x-axis
B. Major ticks every 0.5 units, minor ticks every 2 units on x-axis
C. Only major ticks at 1 and 3, no minor ticks
D. Syntax error due to wrong locator usage
Solution
Step 1: Analyze major locator setting
Major ticks are set every 2 units on the x-axis using MultipleLocator(2).
Step 2: Analyze minor locator setting
Minor ticks are set every 0.5 units using MultipleLocator(0.5).
Final Answer:
Major ticks every 2 units, minor ticks every 0.5 units on x-axis -> Option A
Quick Check:
Major=2, Minor=0.5 units [OK]
Hint: Major locator sets big steps, minor locator sets small steps [OK]
Common Mistakes:
Swapping major and minor locator values
Assuming no minor ticks appear without plt.minorticks_on()
Thinking locator causes syntax error
4. Identify the error in this code that tries to set minor ticks:
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator
fig, ax = plt.subplots()
ax.plot([10, 20, 30])
ax.xaxis.set_minor_locator(MultipleLocator(1))
plt.minorticks_on()
plt.show()
medium
A. plt.minorticks_on() should be called on ax, not plt
B. No error, code runs fine
C. Missing plt.show() call
D. MultipleLocator cannot be used for minor ticks
Solution
Step 1: Check locator and import
MultipleLocator is correctly used for minor ticks with proper import from matplotlib.ticker.
Step 2: Verify minorticks_on()
plt.minorticks_on() works after plt.subplots() as it applies to the current axes object.
Final Answer:
No error, code runs fine -> Option B
Quick Check:
plt.minorticks_on() works with ax [OK]
Hint: plt.minorticks_on() works even with explicit axes objects [OK]
Common Mistakes:
Not importing MultipleLocator from matplotlib.ticker
Thinking MultipleLocator cannot be used for minor ticks
Forgetting to call plt.show()
5. You want to create a plot with major ticks every 5 units and minor ticks every 1 unit on the y-axis only. Which code snippet correctly achieves this?
hard
A. ax.yaxis.set_major_locator(MultipleLocator(1))
ax.yaxis.set_minor_locator(MultipleLocator(5))
plt.minorticks_on()
B. ax.xaxis.set_major_locator(MultipleLocator(5))
ax.xaxis.set_minor_locator(MultipleLocator(1))
ax.minorticks_on()
C. ax.yaxis.set_major_locator(MultipleLocator(5))
ax.yaxis.set_minor_locator(MultipleLocator(1))
ax.minorticks_on()
D. ax.yaxis.set_major_locator(MultipleLocator(5))
ax.yaxis.set_minor_locator(MultipleLocator(1))
plt.minorticks_off()
Solution
Step 1: Set major and minor locators on y-axis
Major ticks every 5 units and minor ticks every 1 unit require ax.yaxis.set_major_locator(MultipleLocator(5)) and ax.yaxis.set_minor_locator(MultipleLocator(1)).
Step 2: Enable minor ticks on the axes object
Use ax.minorticks_on() to show minor ticks on the axes.
Final Answer:
ax.yaxis.set_major_locator(MultipleLocator(5))
ax.yaxis.set_minor_locator(MultipleLocator(1))
ax.minorticks_on() -> Option C
Quick Check:
Major=5, Minor=1 on y-axis with ax.minorticks_on() [OK]
Hint: Set locators on yaxis and call ax.minorticks_on() [OK]
Common Mistakes:
Setting locators on x-axis instead of y-axis
Calling plt.minorticks_on() instead of ax.minorticks_on()
Swapping major and minor locator values
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.