坐标轴¶
影片代码
import manimgx as m
class AxesHero(m.Scene):
def construct(self) -> None:
axes = m.Axes(x_range=[-1, 5, 1], y_range=[-1, 4, 1], x_length=9, y_length=6)
axes.add_coordinates()
names = axes.get_axis_labels("x", "y")
point = axes.c2p(3, 2)
dot = m.Dot(point, color=m.YELLOW)
lines = axes.get_lines_to_point(point, color=m.YELLOW)
label = m.MathTex("(3, 2)", color=m.YELLOW).next_to(dot, m.UR, buff=0.15)
self.play(m.Create(axes), m.Write(names))
self.play(m.GrowFromCenter(dot), m.Create(lines), m.Write(label))
self.wait()
坐标轴的每根轴都有一个范围 [start, end, step] 和一个以帧为单位的长度:x_range=[-3, 3, 1] 将 x 轴从 −3 编号到 3,每个单位处有一个刻度;x_length=8 使其长度为 8 个单位。坐标轴的坐标系是其自身的:x 为 2、y 为 4 的点是 axes.c2p(2, 4),无论坐标轴位于何处、有多长。
Axes
¶
代码
import manimgx as m
class AxesExample(m.Scene):
def construct(self) -> None:
axes = m.Axes(
x_range=[0, 10, 1],
y_range=[-2, 6, 2],
x_length=10,
y_length=6,
axis_config={"include_numbers": True, "font_size": 28},
)
labels = axes.get_axis_labels("t", "v")
graph = axes.plot(lambda t: 5 - 0.2 * (t - 4) ** 2, color=m.BLUE)
self.add(axes, labels)
self.play(m.Create(graph))
坐标轴:过同一原点的数轴,有自己的坐标,以及在其上绘图的工具;未配置时为白色,带箭头。
坐标轴选项映射是构造输入。完成的数轴保留其自身的默认值,用于后续的刻度、标签和坐标。
x 轴在 x_range 上运行,y 轴在 y_range 上运行,每个都是 NumberLine,在其范围的每一步处有刻度。坐标轴在其 0 处交叉(或对于不含 0 的范围,在其最接近 0 的端点处),且两个范围中点对应的点放在场景原点。线性坐标轴上 0 处的刻度被省略,因为另一坐标轴在此处穿过;数字写在刻度处但不含 0(参见 add_coordinates)。
coords_to_point(c2p,或 axes @ (x, y))和 point_to_coords(p2c)在坐标轴的坐标与场景的点之间转换。plot 方法在坐标轴上以其坐标绘图:函数的图像、隐式给出的曲线或极坐标曲线、折线图。get_ 方法制作解释图像的内容:其标签、其下方的面积、黎曼矩形、割线、到点的线。它们都返回新的 mobject,未添加到坐标轴。
x_rangex 轴的范围,
[x_min, x_max, x_step],或[x_min, x_max]表示步长为 1;None 表示画框的宽度,[-7, 7, 1]。y_rangey 轴的范围,同上;None 表示画框的高度,[-4, 4, 1]。
x_lengthx 轴的长度,以场景单位计;None 表示画框宽度减 2,取整,即坐标轴创建时画框的尺寸(宽视频中为 12,高视频中为 6),或坐标轴配置给出时每单位
unit_size。y_lengthy 轴的长度,以场景单位计;None 表示画框高度减 2,取整(宽视频中为 6,高视频中为 12),或坐标轴配置给出时每单位
unit_size。axis_config两个坐标轴的 数轴关键字:
include_numbers、font_size、color、…;None 表示无。x_axis_configx 轴的数轴关键字,覆盖
axis_config的;None 表示无。y_axis_configy 轴的数轴关键字,覆盖
axis_config的;None 表示无。tips每个坐标轴末端是否有箭头。
color填充与描边共用的颜色(默认白色);None 表示该类的默认值。
fill_color填充的颜色;未给出时为
color。多个颜色沿sheen_direction构成渐变。fill_opacity填充的不透明度,取值从 0 到 1(默认 0:无填充)。
stroke_color描边的颜色;未给出时为
color。多个颜色构成渐变。stroke_opacity描边的不透明度,取值从 0 到 1(默认 1)。
stroke_width描边的宽度,以场景单位的百分之一计(默认 4;0:无描边)。
background_stroke_color绘制于填充之后的轮廓颜色(默认黑色)。
background_stroke_opacity轮廓的不透明度,取值从 0 到 1(默认 1)。
background_stroke_width轮廓的宽度,以场景单位的百分之一计(默认 0:无)。
sheen_factor颜色朝
sheen_direction变亮的程度,取值从 -1 到 1(默认 0); 负值变暗。sheen_direction颜色变亮的方向(默认
UL)。joint_type描边在路径转折处的连接方式:圆角、斜切或斜接,按二维场景的绘制方式 (参见 LineJointType;默认 AUTO:斜接)。
cap_style描边在其显示的每一端的端点样式(开放路径的端点、虚线的端点):圆头、平头 或方头,按二维场景的绘制方式(参见 CapStyleType;默认 AUTO:平头)。
shade_in_3d三维场景的光是否对该 mobject 着色。
material其表面在三维场景中如何反射场景的光(参见 Material);None:Manim 的着色(默认)。
namemobject 的名称;未给出时为其类名。
z_index其在绘制顺序中的位置:索引较高者绘制于较低者之上 (默认 0)。
targetMoveToTarget将 mobject 移动至的状态。
还接受 样式关键字。
源码
manimgx\mobjects\plotting.py
x_range
¶
x 轴的范围,[x_min, x_max, x_step]。
y_range
¶
y 轴的范围,[y_min, y_max, y_step]。
x_axis
¶
x 轴,一个 NumberLine。
y_axis
¶
y 轴,一个 NumberLine。
axes
¶
坐标轴,在一个组中:x 轴、y 轴(3D 中还有 z 轴)。
坐标¶
coords_to_point
¶
代码
import manimgx as m
class AxesCoordsToPointExample(m.Scene):
def construct(self) -> None:
axes = m.Axes(
x_range=[0, 6], y_range=[0, 4], x_length=10, y_length=6
)
dot = m.Dot(axes.c2p(1, 1), radius=0.15, color=m.YELLOW)
self.add(axes.add_coordinates(), dot)
self.play(dot.animate.move_to(axes.c2p(5, 3)))
self.play(dot.animate.move_to(axes @ (3, 0.5)))
将坐标轴上的坐标转换为场景的点,或将数组转换为点。
c2p 是其简写名,axes @ (x, y) 是其最简写名。超出坐标轴末端的坐标位于延伸的坐标轴上;缺失的坐标在坐标轴交叉处(c2p(x) 在 x 轴上)。给定每个坐标轴一个任意形状的数组(也包括网格),它一次性转换它们全部。
*coords坐标,每个坐标轴一个,按顺序:数字,或同形状的数组。
返回 点,在场景坐标系中;对于数组,为点,坐标在前(3,然后数组的形状)。
源码
manimgx\mobjects\plotting.py
point_to_coords
¶
将场景的点转换为其在坐标轴上的坐标,或将点转换为它们的坐标。
p2c 是其简写名。每个坐标是坐标轴在该点向其投影处的数字:对于垂直坐标轴,是 coords_to_point 的反函数。
point点,在场景坐标系中;或 (n, 3) 的点数组。
返回 坐标,每个坐标轴一个;对于 n 个点,为 n 行坐标的数组。
源码
manimgx\mobjects\plotting.py
polar_to_point
¶
将坐标轴上的极坐标转换为场景的点。
pr2pt 是其简写名。该点位于坐标(radius cos azimuth、radius sin azimuth)处。
radius到原点的距离,以坐标轴的单位计。
azimuth从正 x 轴起的角度,以弧度计,逆时针方向。
返回 点,在场景坐标系中。
源码
manimgx\mobjects\plotting.py
get_origin
¶
get_x_unit_size
¶
get_y_unit_size
¶
各轴¶
get_x_axis
¶
get_y_axis
¶
get_z_axis
¶
get_axis
¶
get_axes
¶
标签与数字¶
add_coordinates
¶

为坐标轴编号:在其刻度处、在给定值处,或按值给标签。
每个坐标轴给一个参数,按顺序:None 在刻度处为坐标轴编号,但不含 0(对数坐标轴上为幂:10²、10³、…);值在这些值处为坐标轴编号;从值到标签(字符串、数字或已排版的 mobject)的字典将每个标签放在其值旁(参见 add_labels)。不带参数时,每个坐标轴在其刻度处编号。数字添加到坐标轴,并保留,每个坐标轴一个组,作为坐标轴的 coordinate_labels。
*axes_numbers每个坐标轴上写什么,按顺序:None、值或按值的标签;最后一个参数之后的坐标轴什么也不写。
num_decimal_places小数点后跟随的数字位数(默认为 2)。
mob_class每个字符排版所用的类(默认为 MathTex)。
include_sign非负数是否带加号书写(默认为 False)。
group_with_commas小数点前的数字是否按三位一组用逗号分组,如 12,345(默认为 True)。
digit_buff_per_font_unit字符之间的间距,按字体大小单位计:默认值 0.001 在字体大小 48 时为 0.048 个场景单位。
show_ellipsis数字后是否跟"…",用于表示持续变化的值(默认为 False)。
unit数字后的单位,以 LaTeX 数学表示:
"^\circ"表示度,r"\text{ m}"表示米; 以 "^" 开头的单位会提升到数字的顶部(默认为 None)。unit_buff_per_font_unit单位前的间距,超出字符间距之外的部分,按字体大小单位计(默认为 0)。
include_background_rectangle数字后是否有背景矩形(默认为 False)。
edge_to_fix当新值改变数字宽度时保持不动的边缘,以方向表示(默认为 LEFT:向右生长)。
font_size字符的字体大小,以
mob_class的度量方式计(默认为 48)。color填充与描边共用的颜色(默认白色);None 表示该类的默认值。
fill_color填充的颜色;未给出时为
color。多个颜色沿sheen_direction构成渐变。fill_opacity填充的不透明度,取值从 0 到 1(默认 0:无填充)。
stroke_color描边的颜色;未给出时为
color。多个颜色构成渐变。stroke_opacity描边的不透明度,取值从 0 到 1(默认 1)。
stroke_width描边的宽度,以场景单位的百分之一计(默认 4;0:无描边)。
background_stroke_color绘制于填充之后的轮廓颜色(默认黑色)。
background_stroke_opacity轮廓的不透明度,取值从 0 到 1(默认 1)。
background_stroke_width轮廓的宽度,以场景单位的百分之一计(默认 0:无)。
sheen_factor颜色朝
sheen_direction变亮的程度,取值从 -1 到 1(默认 0); 负值变暗。sheen_direction颜色变亮的方向(默认
UL)。joint_type描边在路径转折处的连接方式:圆角、斜切或斜接,按二维场景的绘制方式 (参见 LineJointType;默认 AUTO:斜接)。
cap_style描边在其显示的每一端的端点样式(开放路径的端点、虚线的端点):圆头、平头 或方头,按二维场景的绘制方式(参见 CapStyleType;默认 AUTO:平头)。
shade_in_3d三维场景的光是否对该 mobject 着色。
material其表面在三维场景中如何反射场景的光(参见 Material);None:Manim 的着色(默认)。
namemobject 的名称;未给出时为其类名。
z_index其在绘制顺序中的位置:索引较高者绘制于较低者之上 (默认 0)。
targetMoveToTarget将 mobject 移动至的状态。
源码
manimgx\mobjects\plotting.py
get_axis_labels
¶

为每个坐标轴制作标签,在其末端处,按 get_x_axis_label 和 get_y_axis_label 的放置方式。
x_labelx 轴的标签:字符串或数字,按数学排版,或 mobject。
y_labely 轴的标签,同上。
返回
标签的新组,保留为坐标轴的 axis_labels;未添加到坐标轴。
源码
manimgx\mobjects\plotting.py
get_x_axis_label
¶
为 x 轴制作标签,在其末端处。
字符串或数字用坐标轴的 label_constructor 排版(默认按数学排版,用 MathTex);mobject 按原样使用。标签放在坐标轴的某个角旁,朝 direction 方向,然后若在屏幕外则移回屏幕上。
axes.get_x_axis_label(label, edge=UR, direction=UR, buff=SMALL_BUFF)
label标签:字符串、数字或 mobject。
edge标签所放的坐标轴的角,作为方向:UR,即右上角,在其末端处。
direction标签从该角放置的方向。
buff角与标签之间的间距,以场景单位计。
返回 标签,未添加到坐标轴。
源码
manimgx\mobjects\plotting.py
get_y_axis_label
¶
为 y 轴制作标签,在其末端处。
字符串或数字用坐标轴的 label_constructor 排版(默认按数学排版,用 MathTex);mobject 按原样使用。标签放在坐标轴的某个角旁,朝 direction 方向,然后若在屏幕外则移回屏幕上。
axes.get_y_axis_label(label, edge=UR, direction=UP * 0.5 + RIGHT, buff=SMALL_BUFF)
label标签:字符串、数字或 mobject。
edge标签所放的坐标轴的角,作为方向:UR,即右上角,在其末端处。
direction标签从该角放置的方向:默认向上向右。
buff角与标签之间的间距,以场景单位计。
返回 标签,未添加到坐标轴。
源码
manimgx\mobjects\plotting.py
到某点的连线¶
get_vertical_line
¶
制作从 x 轴向上(或向下)到点的线:虚线,未设置样式时为白色细线。
point点,在场景坐标系中。
line_func线的类(默认 DashedLine;Line 是实线)。
line_config线的 虚线关键字,但不包括其颜色和宽度,由
color和stroke_width设置(默认 None:无)。color线的颜色(默认 None:白色)。
stroke_width线的宽度,以场景单位的百分之一计(默认 2)。
返回 一条新的线,未添加到坐标轴。
源码
manimgx\mobjects\plotting.py
get_horizontal_line
¶
制作从 y 轴横跨到点的线:虚线,未设置样式时为白色细线。
point点,在场景坐标系中。
line_func线的类(默认 DashedLine;Line 是实线)。
line_config线的 虚线关键字,但不包括其颜色和宽度,由
color和stroke_width设置(默认 None:无)。color线的颜色(默认 None:白色)。
stroke_width线的宽度,以场景单位的百分之一计(默认 2)。
返回 一条新的线,未添加到坐标轴。
源码
manimgx\mobjects\plotting.py
get_lines_to_point
¶
代码
import manimgx as m
class AxesGetLinesToPointExample(m.Scene):
def construct(self) -> None:
axes = m.Axes(x_range=[0, 6], y_range=[0, 4], x_length=10)
dot = m.Dot(axes.c2p(4, 3), radius=0.15, color=m.YELLOW)
lines = axes.get_lines_to_point(dot.get_center(), color=m.BLUE)
self.add(axes.add_coordinates(), dot)
self.play(m.Create(lines))
制作从两个坐标轴到点的线:从 y 轴的 水平线,然后从 x 轴的 垂直线。
point点,在场景坐标系中。
line_func线的类(默认 DashedLine;Line 是实线)。
line_config线的 虚线关键字,但不包括其颜色和宽度,由
color和stroke_width设置(默认 None:无)。color线的颜色(默认 None:白色)。
stroke_width线的宽度,以场景单位的百分之一计(默认 2)。
返回 两条线的新组,未添加到坐标轴。
源码
manimgx\mobjects\plotting.py
三维坐标轴¶
ThreeDAxes
¶

代码
import manimgx as m
class ThreeDAxesExample(m.ThreeDScene):
def construct(self) -> None:
self.set_camera_orientation(phi=60 * m.DEGREES, theta=-50 * m.DEGREES)
axes = m.ThreeDAxes(
x_range=(-4, 4),
y_range=(-4, 4),
z_range=(-3, 3),
x_length=8,
y_length=8,
z_length=6,
)
dot = m.Dot3D(axes.c2p(2, 3, 2), radius=0.15, color=m.YELLOW)
self.add(axes, axes.get_axis_labels(), dot)
三维坐标轴:一条 z 轴指出屏幕,过 x 轴和 y 轴的原点;未配置时为白色,带箭头,并由三维场景的光线着色。
z 轴与其他坐标轴一样创建,在 z_range 上运行,指向 OUT,在其 0 处(或其范围最接近 0 的端点处)与它们交叉。每个坐标轴绘制为短段,按三维对象的方式着色,带朝向光的轻微光泽。坐标用三个数字转换,axes.c2p(x, y, z),Axes 能做的一切,这些坐标轴也能。从正上方看,它们看起来像二维坐标轴:转动相机(set_camera_orientation)以看到其深度。
常用的坐标轴选项在构造开始时捕获;每个完成的数轴保留其自身的运行时默认值。
x_rangex 轴的范围,
[x_min, x_max, x_step],或[x_min, x_max]表示步长为 1;None 表示 [-7, 7, 1]。y_rangey 轴的范围,同上;None 表示 [-4, 4, 1]。
z_rangez 轴的范围,同上;None 表示 [-7, 7, 1]。
x_lengthx 轴的长度,以场景单位计;None 表示画框短边加 2.5(宽视频和高视频中为 10.5),或坐标轴配置给出时每单位
unit_size。y_lengthy 轴的长度,以场景单位计;None 也表示 10.5,或坐标轴配置给出时每单位
unit_size。z_lengthz 轴的长度,以场景单位计;None 表示画框短边减 1.5(6.5),或坐标轴配置给出时每单位
unit_size。z_axis_configz 轴的 数轴关键字,覆盖
axis_config的;None 表示无。axis_config每个坐标轴的 数轴关键字:
include_numbers、font_size、color、…(默认 None:无)。x_axis_configx 轴的数轴关键字,覆盖
axis_config的(默认 None:无)。y_axis_configy 轴的数轴关键字,覆盖
axis_config的(默认 None:无)。tips每个坐标轴末端是否有箭头(默认 True;平面的坐标轴无箭头,除非
axis_config包含include_tip)。color填充与描边共用的颜色(默认白色);None 表示该类的默认值。
fill_color填充的颜色;未给出时为
color。多个颜色沿sheen_direction构成渐变。fill_opacity填充的不透明度,取值从 0 到 1(默认 0:无填充)。
stroke_color描边的颜色;未给出时为
color。多个颜色构成渐变。stroke_opacity描边的不透明度,取值从 0 到 1(默认 1)。
stroke_width描边的宽度,以场景单位的百分之一计(默认 4;0:无描边)。
background_stroke_color绘制于填充之后的轮廓颜色(默认黑色)。
background_stroke_opacity轮廓的不透明度,取值从 0 到 1(默认 1)。
background_stroke_width轮廓的宽度,以场景单位的百分之一计(默认 0:无)。
sheen_factor颜色朝
sheen_direction变亮的程度,取值从 -1 到 1(默认 0); 负值变暗。sheen_direction颜色变亮的方向(默认
UL)。joint_type描边在路径转折处的连接方式:圆角、斜切或斜接,按二维场景的绘制方式 (参见 LineJointType;默认 AUTO:斜接)。
cap_style描边在其显示的每一端的端点样式(开放路径的端点、虚线的端点):圆头、平头 或方头,按二维场景的绘制方式(参见 CapStyleType;默认 AUTO:平头)。
shade_in_3d三维场景的光是否对该 mobject 着色。
material其表面在三维场景中如何反射场景的光(参见 Material);None:Manim 的着色(默认)。
namemobject 的名称;未给出时为其类名。
z_index其在绘制顺序中的位置:索引较高者绘制于较低者之上 (默认 0)。
targetMoveToTarget将 mobject 移动至的状态。
源码
manimgx\mobjects\plotting.py
z_range
¶
z 轴的范围,按给出时的形式。
z_axis
¶
z 轴,一个 NumberLine。
get_y_axis_label
¶
为 y 轴制作标签,在其末端处,旋转以沿其放置。
字符串或数字用坐标轴的 label_constructor 排版(默认按数学排版,用 MathTex);mobject 按原样使用。标签放在坐标轴的某个角旁,朝 direction 方向,若在屏幕外则移回屏幕上,然后绕其中心旋转。
three_daxes.get_y_axis_label(label, edge=UR, direction=UR, buff=SMALL_BUFF, rotation=PI / 2, rotation_axis=OUT)
label标签:字符串、数字或 mobject。
edge标签所放的坐标轴的角,作为方向:UR,即右上角,在其末端处。
direction标签从该角放置的方向。
buff角与标签之间的间距,以场景单位计。
rotation标签旋转的角度,以弧度计:四分之一圈,逆时针方向。
rotation_axis旋转所绕的轴:OUT 使其在 xy 平面内旋转。
返回 标签,未添加到坐标轴。
源码
manimgx\mobjects\plotting.py
get_z_axis_label
¶
为 z 轴制作标签,在其末端处,竖立放置。
字符串或数字用坐标轴的 label_constructor 排版(默认按数学排版,用 MathTex);mobject 按原样使用。标签放在坐标轴末端旁,朝 direction 方向,若在屏幕外则移回屏幕上,然后绕其中心旋转:默认绕 RIGHT 四分之一圈,使其从 xy 平面立起。
three_daxes.get_z_axis_label(label, edge=OUT, direction=RIGHT, buff=SMALL_BUFF, rotation=PI / 2, rotation_axis=RIGHT)
label标签:字符串、数字或 mobject。
edge标签所放的坐标轴的点,作为方向:OUT,即其末端。
direction标签从该点放置的方向。
buff点与标签之间的间距,以场景单位计。
rotation标签旋转的角度,以弧度计。
rotation_axis旋转所绕的轴。
返回 标签,未添加到坐标轴。
源码
manimgx\mobjects\plotting.py
get_axis_labels
¶
为每个坐标轴制作标签,在其末端处,按 get_x_axis_label、get_y_axis_label 和 get_z_axis_label 的放置方式。
x_labelx 轴的标签:字符串或数字,按数学排版,或 mobject。
y_labely 轴的标签,同上。
z_labelz 轴的标签,同上。
返回
标签的新组,保留为坐标轴的 axis_labels;未添加到坐标轴。
源码
manimgx\mobjects\plotting.py
AxisLine
¶
从坐标轴到点的线的关键字 (get_vertical_line 等):其类、其关键字、其颜色和其宽度。
line_func线的类(默认 DashedLine;Line 是实线)。
line_config线的 虚线关键字,但不包括其颜色和宽度,由
color和stroke_width设置(默认 None:无)。color线的颜色(默认 None:白色)。
stroke_width线的宽度,以场景单位的百分之一计(默认 2)。
AxesOptions
¶
Axes 除范围和长度外的关键字,用于传递它们的类(ThreeDAxes、平面、BarChart):其坐标轴的配置和箭头,附带样式关键字。
axis_config每个坐标轴的 数轴关键字:
include_numbers、font_size、color、…(默认 None:无)。x_axis_configx 轴的数轴关键字,覆盖
axis_config的(默认 None:无)。y_axis_configy 轴的数轴关键字,覆盖
axis_config的(默认 None:无)。tips每个坐标轴末端是否有箭头(默认 True;平面的坐标轴无箭头,除非
axis_config包含include_tip)。color填充与描边共用的颜色(默认白色);None 表示该类的默认值。
fill_color填充的颜色;未给出时为
color。多个颜色沿sheen_direction构成渐变。fill_opacity填充的不透明度,取值从 0 到 1(默认 0:无填充)。
stroke_color描边的颜色;未给出时为
color。多个颜色构成渐变。stroke_opacity描边的不透明度,取值从 0 到 1(默认 1)。
stroke_width描边的宽度,以场景单位的百分之一计(默认 4;0:无描边)。
background_stroke_color绘制于填充之后的轮廓颜色(默认黑色)。
background_stroke_opacity轮廓的不透明度,取值从 0 到 1(默认 1)。
background_stroke_width轮廓的宽度,以场景单位的百分之一计(默认 0:无)。
sheen_factor颜色朝
sheen_direction变亮的程度,取值从 -1 到 1(默认 0); 负值变暗。sheen_direction颜色变亮的方向(默认
UL)。joint_type描边在路径转折处的连接方式:圆角、斜切或斜接,按二维场景的绘制方式 (参见 LineJointType;默认 AUTO:斜接)。
cap_style描边在其显示的每一端的端点样式(开放路径的端点、虚线的端点):圆头、平头 或方头,按二维场景的绘制方式(参见 CapStyleType;默认 AUTO:平头)。
shade_in_3d三维场景的光是否对该 mobject 着色。
material其表面在三维场景中如何反射场景的光(参见 Material);None:Manim 的着色(默认)。
namemobject 的名称;未给出时为其类名。
z_index其在绘制顺序中的位置:索引较高者绘制于较低者之上 (默认 0)。
targetMoveToTarget将 mobject 移动至的状态。