You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Manim项目中如何将X轴改为弧度制LaTeX刻度标签?

Manim X轴弧度制标签不显示问题解决

你的问题出在开启了自动数字标签:当axis_config里设置include_numbers=True时,Manim会自动生成基于数值的刻度标签,覆盖你手动设置的自定义LaTeX标签。另外,直接调用set_tick_labels的方式在部分Manim版本中需要配合关闭自动标签才能生效,更可靠的方式是用add_labels或者在创建Axes时直接指定标签映射。

解决方法1:创建Axes时直接配置X轴标签

修改Axes的初始化参数,关闭自动数字标签,并通过x_axis_config指定刻度标签映射:

from manim import *
import numpy as np


class RadiansTest(Scene):
    def construct(self):
        # 定义弧度刻度标签
        tick_labels = {
            -2 * PI: r"$-2\pi$",
            -3 * PI / 2: r"$-\frac{3\pi}{2}$",
            -PI: r"$-\pi$",
            -PI / 2: r"$-\frac{\pi}{2}$",
            0: r"$0$",
            PI / 2: r"$\frac{\pi}{2}$",
            PI: r"$\pi$",
            3 * PI / 2: r"$\frac{3\pi}{2}$",
            2 * PI: r"$2\pi$",
        }
        
        axes = Axes(
            x_range=[-10, 10, PI/2],
            y_range=[-10, 10, 1],
            x_length=10,
            y_length=10,
            # 全局轴配置:关闭自动数字标签,保留刻度
            axis_config={"include_numbers": False, "include_ticks": True},
            # 单独配置X轴的标签映射
            x_axis_config={"tick_label_map": tick_labels}
        )

        graph = axes.plot(np.sin, color=BLUE, x_range=[-10, 10])

        self.play(Create(axes), Create(graph))
        self.wait(2)

解决方法2:创建Axes后添加自定义标签

如果需要保留Y轴的自动数字标签,可以只单独关闭X轴的自动数字标签,再用add_labels添加自定义标签:

from manim import *
import numpy as np


class RadiansTest(Scene):
    def construct(self):
        axes = Axes(
            x_range=[-10, 10, PI/2],
            y_range=[-10, 10, 1],
            x_length=10,
            y_length=10,
            # Y轴保留自动数字标签,X轴单独配置关闭
            axis_config={"include_numbers": True, "include_ticks": True},
            x_axis_config={"include_numbers": False}
        )

        # 定义弧度刻度标签
        tick_labels = {
            -2 * PI: r"$-2\pi$",
            -3 * PI / 2: r"$-\frac{3\pi}{2}$",
            -PI: r"$-\pi$",
            -PI / 2: r"$-\frac{\pi}{2}$",
            0: r"$0$",
            PI / 2: r"$\frac{\pi}{2}$",
            PI: r"$\pi$",
            3 * PI / 2: r"$\frac{3\pi}{2}$",
            2 * PI: r"$2\pi$",
        }
        
        # 给X轴添加自定义标签
        axes.x_axis.add_labels(tick_labels)

        graph = axes.plot(np.sin, color=BLUE, x_range=[-10, 10])

        self.play(Create(axes), Create(graph))
        self.wait(2)

关键说明

  • 必须关闭X轴的include_numbers=True,否则自动生成的数值标签会覆盖自定义LaTeX标签。
  • tick_label_map或add_labels的键必须和X轴的刻度位置完全匹配(比如-2*PI对应的数值要和x_range里的刻度点一致),否则标签不会显示。
  • 你的x_range设置为[-10,10,PI/2],2*PI≈6.28在范围内,所以所有定义的标签位置都是有效的。

内容的提问来源于stack exchange,提问作者haifisch123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 04:44:50