Manim中Axes类修改x_length/y_length参数无效,如何实现正交坐标系
1. 参数未生效的原因
你代码中传入的x_length、y_length是旧版Manim的废弃参数,在当前主流的Manim Community Edition(v0.9及以上版本)中,这两个参数已被重命名为x_axis_length和y_axis_length。未定义的参数会被程序直接忽略,Axes默认使用约6个单位的轴长,因此会出现尺寸远大于预期的情况。
2. 正交坐标系实现方案
以下两种方案都可以实现你要的右上角小尺寸等轴正交坐标系:
方案1:使用新版官方参数
直接替换参数名即可,是最推荐的写法:
class UR_Small_Orthonormal(Scene): def construct(self): axes = Axes((0, 2), (0, 2), x_axis_length = 2, y_axis_length = 2) axes.add_coordinate_labels() axes.to_edge(UR) self.add(axes) self.wait()
方案2:等比例缩放坐标系
如果需要兼容多版本Manim,或者需要同步调整刻度、标签的大小,可以调用scale方法整体缩放:
class UR_Small_Orthonormal(Scene): def construct(self): axes = Axes((0, 2), (0, 2)) axes.add_coordinate_labels() # 缩放比例可根据实际需求调整 axes.scale(0.3) axes.to_edge(UR) self.add(axes) self.wait()
如果需要严格保证坐标轴单位长度完全相等,可额外在Axes的参数中添加axis_config={"unit_size": 1},进一步避免拉伸问题。
内容的提问来源于stack exchange,提问作者PhilK
相关产品推荐
相关产品推荐

