Skip to content

Commit 56df154

Browse files
committed
Fix bug with common range array used for all coordinate systems
1 parent d50717a commit 56df154

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

manimlib/mobject/coordinate_systems.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ class CoordinateSystem():
2525
"""
2626
CONFIG = {
2727
"dimension": 2,
28-
"x_range": np.array([-8.0, 8.0, 1.0]),
29-
"y_range": np.array([-4.0, 4.0, 1.0]),
28+
"default_x_range": [-8.0, 8.0, 1.0],
29+
"default_y_range": [-4.0, 4.0, 1.0],
3030
"width": None,
3131
"height": None,
3232
"num_sampled_graph_points_per_tick": 20,
@@ -284,8 +284,10 @@ def __init__(self,
284284
**kwargs):
285285
super().__init__(**kwargs)
286286
if x_range is not None:
287+
self.x_range = np.array(self.default_x_range)
287288
self.x_range[:len(x_range)] = x_range
288289
if y_range is not None:
290+
self.y_range = np.array(self.default_y_range)
289291
self.y_range[:len(y_range)] = y_range
290292

291293
self.x_axis = self.create_axis(
@@ -501,15 +503,15 @@ def point_to_number(self, point):
501503
def p2n(self, point):
502504
return self.point_to_number(point)
503505

504-
def get_default_coordinate_values(self):
506+
def get_default_coordinate_values(self, skip_first=True):
505507
x_numbers = self.get_x_axis().get_tick_range()[1:]
506508
y_numbers = self.get_y_axis().get_tick_range()[1:]
507509
y_numbers = [complex(0, y) for y in y_numbers if y != 0]
508510
return [*x_numbers, *y_numbers]
509511

510-
def add_coordinate_labels(self, numbers=None, **kwargs):
512+
def add_coordinate_labels(self, numbers=None, skip_first=True, **kwargs):
511513
if numbers is None:
512-
numbers = self.get_default_coordinate_values()
514+
numbers = self.get_default_coordinate_values(skip_first)
513515

514516
self.coordinate_labels = VGroup()
515517
for number in numbers:
@@ -522,6 +524,9 @@ def add_coordinate_labels(self, numbers=None, **kwargs):
522524
axis = self.get_x_axis()
523525
value = z.real
524526
number_mob = axis.get_number_mobject(value, **kwargs)
527+
# For i and -i, remove the "1"
528+
if abs(z.imag) == 1:
529+
number_mob.remove(number_mob[0])
525530
self.coordinate_labels.add(number_mob)
526531
self.add(self.coordinate_labels)
527532
return self

0 commit comments

Comments
 (0)