AttributeError: NumberLine object has no attribute 'default_numbers_to_display' when calling get_number_mobjects()
Description of bug / unexpected behavior
When attempting to use get_number_mobjects() on a NumberLine object, I encountered the following error:
AttributeError: NumberLine object has no attribute 'default_numbers_to_display'
It seems like the method get_number_mobjects() internally calls self.default_numbers_to_display(), but this method is either missing or no longer available in the current implementation of NumberLine.
Expected behavior
Calling get_number_mobjects() with no arguments should use default numbers (e.g., from x_range) to generate label mobjects.
How to reproduce the issue
- Create a
NumberLineobject. - Call
get_number_mobjects()without passing any explicit numbers. - Run the scene.
Code for reproducing the problem
from manim import *
class IntroductionToComplexNumbers(Scene):
def construct(self):
# Create real number line
real_number_line = NumberLine(
x_range=[-5, 5, 1],
length=10,
include_tip=False,
)
real_number_line_labels = real_number_line.get_number_mobjects()
self.add(real_number_line, *real_number_line_labels)
Logs
Terminal output
System specifications
System Details
Environment
* **OS:** Windows 11
* **Manim version:** (e.g., v0.19.0)
* **Python version:** (e.g., 3.10)
* **Installation:** pip
It seems that the method .default_numbers_to_display() has been removed from Manim Community, but the code wasn't updated accordingly.
If your goal is to display numbers along the number line, you can do either of the following:
-
Use
.add_numbers()after creatingNumberLineobject:class IntroductionToComplexNumbers(Scene): def construct(self): real_number_line = NumberLine( x_range=[-5, 5, 1], length=10, include_tip=False, ) real_number_line.add_numbers() self.add(real_number_line) -
Or, set
include_numbers=Truedirectly in the constructor:class IntroductionToComplexNumbers(Scene): def construct(self): real_number_line = NumberLine( x_range=[-5, 5, 1], length=10, include_tip=False, include_numbers=True, ) self.add(real_number_line)
For more details, see the documentation:
👉 NumberLine — Manim Documentation
Hi @kevinnadar22
I think this issue still needs to be addressed.
When users call .get_number_mobjects() or .get_labels() on a NumberLine object, it will still raise an AttributeError because .default_numbers_to_display() is being accessed but doesn't exist.