Repository: ManimCommunity/manim
File: manim/mobject/coordinate_systems.py (Python)

Code before:
                )
            else:
                string = (
                    r"\tfrac{"
                    + str(frac.numerator)
                    + r"}{"
                    + str(frac.denominator)
                    + r"}"
                    + constant_label
                )

        return MathTex(string, font_size=font_size, **kwargs)

    def get_polar_graph(
        self, r_func: Callable, theta_range: Sequence[float] = [0, 2 * PI], **kwargs
    ):
        """A polar graph.

        Parameters
        ----------
        r_func
            The function r of theta.
        theta_range
            The range of theta.
        kwargs
            Additional parameters passed to :class:`ParametricFunction`.

        Examples
        --------
        .. manim:: PolarGraphExample
            :save_last_frame:

            class PolarGraphExample(Scene):
                def construct(self):
                    plane = PolarPlane()
                    r = lambda theta: 2 * np.sin(theta * 5)
                    graph = plane.get_polar_graph(r, [0, 2 * PI], color=ORANGE)
                    self.add(plane, graph)
        """
        return ParametricFunction(
            function=lambda th: self.pr2pt(r_func(th), th),
            t_range=theta_range,
            **kwargs,
        )


class ComplexPlane(NumberPlane):
    """A :class:`~.NumberPlane` specialized for use with complex numbers.

    Examples
    --------

Review comment (suggestion):
```suggestion
            Additional parameters passed to :class:`~.ParametricFunction`.
```

Code after:
                rlines1.add(new_line)
            else:
                rlines2.add(new_line)

        lines1 = VGroup(*rlines1, *alines1)
        lines2 = VGroup(*rlines2, *alines2)
        return lines1, lines2

    def get_axes(self) -> VGroup:
        """Gets the axes.
        Returns
        -------
        :class:`~.VGroup`
            A pair of axes.
        """
        return self.axes

    def get_vector(self, coords, **kwargs):
        kwargs["buff"] = 0
        return Arrow(
            self.coords_to_point(0, 0), self.coords_to_point(*coords), **kwargs
        )

    def prepare_for_nonlinear_transform(self, num_inserted_curves=50):
        for mob in self.family_members_with_points():
            num_curves = mob.get_num_curves()
            if num_inserted_curves > num_curves:
                mob.insert_n_curves(num_inserted_curves - num_curves)
        return self

    def get_coordinate_labels(
        self,
        r_values: Optional[Iterable[float]] = None,
        a_values: Optional[Iterable[float]] = None,
        **kwargs,
    ) -> VDict:
        """Gets labels for the coordinates
        Parameters
        ----------
        r_values
            Iterable of values along the radius, by default None.
        a_values
            Iterable of values along the azimuth, by default None.
        Returns
        -------
        VDict
            Labels for the radius and azimuth values.
        """
        if r_values is None:
            r_values = [r for r in self.get_x_axis().get_tick_range() if r >= 0]
        if a_values is None: