绘图¶
影片代码
import manimgx as m
def curve(x: float) -> float:
return 0.25 * x**2 + 0.5
class PlottingHero(m.Scene):
def construct(self) -> None:
axes = m.Axes(x_range=[0, 4, 1], y_range=[0, 5, 1], x_length=8, y_length=5.5)
axes.add_coordinates()
graph = axes.plot(curve, color=m.BLUE)
label = axes.get_graph_label(graph, r"\frac{x^2}{4} + \frac{1}{2}", x_val=3.6)
rectangles = axes.get_riemann_rectangles(
graph, x_range=[1, 3], dx=0.25, fill_opacity=0.6
)
slope = axes.get_secant_slope_group(
1.5, graph, dx=1, secant_line_color=m.YELLOW
)
self.play(m.Create(axes))
self.play(m.Create(graph), m.Write(label))
self.play(
m.LaggedStart(
*[m.GrowFromEdge(r, m.DOWN) for r in rectangles], lag_ratio=0.1
)
)
self.play(m.FadeOut(rectangles), m.Create(slope))
self.wait()
plot 在坐标轴上以轴的坐标系绘制一个关于 x 的 Python 函数的图像:它是一条曲线,一个与其他任何 mobject 一样的 mobject,可供设置样式和制作动画。坐标轴随后生成用以阐释它的内容:其末端的标签、其下方的面积、用于其积分的矩形、某点处的斜率、其导数的图像。
这些方法创建新的 mobject,但不添加任何内容到场景中:你需要自行将它们添加到场景中,或为其制作动画。
图像¶
plot
¶
代码
import numpy as np
import manimgx as m
class AxesPlotExample(m.Scene):
def construct(self) -> None:
axes = m.Axes(x_range=[-4, 4], y_range=[-2, 2], y_length=6)
sine = axes.plot(np.sin, color=m.BLUE)
parabola = axes.plot(
lambda x: x**2 - 1.5,
x_range=[-1.8, 1.8],
colorscale=[m.GREEN, m.YELLOW, m.RED],
)
self.add(axes)
self.play(m.Create(sine), m.Create(parabola))
在坐标轴上以坐标轴坐标系绘制函数 y = f(x) 的图像。
函数在 x_range 上采样,采样点平滑连接(参见 ParametricFunction);对数 x 轴上 x 在幂上运行。图像将函数保留为其 underlying_function,供处理图像的方法使用。带 colorscale 时,图像的描边是其值(y 或 x)颜色的从左到右渐变,在 x_range 的每一步处取值(未给出时每 0.01)。
function函数,从 x 到 y,在坐标轴坐标系中。
x_range图像所跨越的 x 的范围,
[x_min, x_max]或[x_min, x_max, x_step],函数每x_step采样一次;None 表示 x 轴的范围。未给出步长时为 x 轴的十分之一。use_vectorizedfunction是否一次性接收所有 x 值(作为数组);无论如何都会先尝试用数组,若不接受则每个值调用一次。colorscale按值给图像上色的颜色:颜色在坐标轴范围内均匀分布,或
(color, value)对,在之间混合;None 表示图像自身的颜色。colorscale_axis色阶所依据的值:1 为 y,0 为 x。
dt曲线的各段在每处不连续点前多远停止,以曲线参数为单位(默认 1e-8)。
discontinuities曲线断开的参数值:曲线在这些值之间分段绘制(默认 None:无)。
use_smoothing采样点是否通过过它们的平滑曲线连接,而非用直线段连接(默认 True)。
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 移动至的状态。
返回 一个新的 ParametricFunction,未添加到坐标轴。
源码
manimgx\mobjects\plotting.py
1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 | |
plot_line_graph
¶
代码
import manimgx as m
class AxesPlotLineGraphExample(m.Scene):
def construct(self) -> None:
axes = m.Axes(x_range=[0, 7], y_range=[0, 5], y_length=6)
graph = axes.plot_line_graph(
x_values=[0, 1.5, 2, 2.8, 4, 6.25],
y_values=[1, 3, 2.25, 4, 2.5, 1.75],
line_color=m.ORANGE,
vertex_dot_radius=0.12,
vertex_dot_style={"color": m.PURPLE},
stroke_width=6,
)
self.add(axes.add_coordinates())
self.play(m.Create(graph))
绘制折线图:过由其坐标给出的点的直线段,每个点处有一个点;未设置样式时为亮黄色(PURE_YELLOW),带白色点。空输入产生空图。
x_values点的 x 坐标。
y_values点的 y 坐标,数量相同。
z_values点的 z 坐标,在三维坐标轴上;None 表示 0。
line_color线的颜色,除非关键字给出
color。add_vertex_dots是否每个点处有一个点标记。
vertex_dot_radius点的半径,以场景单位计。
vertex_dot_style点的 样式关键字;None 表示无。
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 移动至的状态。
还接受 样式关键字。
返回
一个新的 VDict,未添加到坐标轴,线在 "line_graph" 下,点(在一个组中)在 "vertex_dots" 下。
源码
manimgx\mobjects\plotting.py
2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 | |
plot_polar_graph
¶
在坐标轴上以极坐标绘制曲线,r = r_func(θ):对于其范围的每个角度 θ,在原点朝 θ 方向、距离 r_func(θ) 处的点。
r_func函数,从角度 θ(弧度)到距离 r(坐标轴单位)。
theta_rangeθ 的范围,
[θ_min, θ_max]或[θ_min, θ_max, θ_step],弧度,未给出步长时每 0.01 采样;None 表示一整圈,[0, 2π]。dt曲线的各段在每处不连续点前多远停止,以曲线参数为单位(默认 1e-8)。
discontinuities曲线断开的参数值:曲线在这些值之间分段绘制(默认 None:无)。
use_smoothing采样点是否通过过它们的平滑曲线连接,而非用直线段连接(默认 True)。
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 移动至的状态。
返回 一个新的 ParametricFunction,未添加到坐标轴。
源码
manimgx\mobjects\plotting.py
plot_implicit_curve
¶
在坐标轴上以坐标轴坐标系绘制 x 和 y 的函数为零的曲线,即 func(x, y) = 0:在其范围内寻找。
范围的矩形被四等分,每一部分再四等分,在曲线经过处更精细(参见 ImplicitFunction)。对数坐标轴上,函数接收幂。
funcx 和 y 的函数,在坐标轴坐标系中。
min_depth矩形至少被四等分的次数:更多次能找到曲线更小的段。
max_quads矩形最多可划分的单元格数:更多能更紧密地跟随曲线,但耗时更长。
use_smoothing曲线是否通过其点平滑连接,而非用直线段绘制(默认 True)。
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 移动至的状态。
返回 一个新的 ImplicitFunction,未添加到坐标轴。
源码
manimgx\mobjects\plotting.py
plot_derivative_graph
¶
代码
import manimgx as m
class AxesPlotDerivativeGraphExample(m.Scene):
def construct(self) -> None:
axes = m.Axes(x_range=[-3, 3], y_range=[-3, 4], y_length=6.5)
cubic = axes.plot(lambda x: x**3 / 6 - x, color=m.BLUE)
derivative = axes.plot_derivative_graph(cubic)
labels = m.VGroup(
axes.get_graph_label(cubic, "f(x)", x_val=-1.4, direction=m.UP),
axes.get_graph_label(derivative, "f'(x)", x_val=2.5),
)
self.add(axes, cubic, labels[0])
self.play(m.Create(derivative), m.FadeIn(labels[1]))
绘制图像的导数:在每个 x 处为其 斜率;未设置样式时为绿色。
x_range图像所跨越的 x 的范围,
[x_min, x_max]或[x_min, x_max, x_step],函数每x_step采样一次(默认 None:x 轴的范围;未给出步长时为 x 轴的十分之一)。use_vectorized函数是否一次性接收所有 x 值(作为数组)(默认 False:无论如何都会先尝试用数组,若不接受则每个值调用一次)。
colorscale按值给图像上色的颜色:颜色在坐标轴范围内均匀分布,或
(color, value)对,在之间混合(默认 None:图像自身的颜色)。colorscale_axis色阶所依据的值:1 为 y,0 为 x(默认 1)。
dt曲线的各段在每处不连续点前多远停止,以曲线参数为单位(默认 1e-8)。
discontinuities曲线断开的参数值:曲线在这些值之间分段绘制(默认 None:无)。
use_smoothing采样点是否通过过它们的平滑曲线连接,而非用直线段连接(默认 True)。
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 移动至的状态。
返回 一个新的 ParametricFunction,未添加到坐标轴。
源码
manimgx\mobjects\plotting.py
plot_antiderivative_graph
¶
代码
import manimgx as m
class AxesPlotAntiderivativeGraphExample(m.Scene):
def construct(self) -> None:
axes = m.Axes(x_range=[-3, 3], y_range=[-3, 3], y_length=6.5)
graph = axes.plot(lambda x: (x**2 - 2) / 3, color=m.RED)
antiderivative = axes.plot_antiderivative_graph(
graph, y_intercept=1, color=m.BLUE
)
self.add(axes, graph)
self.play(m.Create(antiderivative))
绘制图像的一个原函数:在每个 x 处为图像从 0 到 x 的积分,加上 y_intercept。
每个值是图像在从 0 到 x 的 samples 个点处值的梯形和。
y_intercept原函数在 0 处的值。
samples每个积分所求和的图像值个数。
x_range图像所跨越的 x 的范围,
[x_min, x_max]或[x_min, x_max, x_step],函数每x_step采样一次(默认 None:x 轴的范围;未给出步长时为 x 轴的十分之一)。use_vectorized函数是否一次性接收所有 x 值(作为数组)(默认 False:无论如何都会先尝试用数组,若不接受则每个值调用一次)。
colorscale按值给图像上色的颜色:颜色在坐标轴范围内均匀分布,或
(color, value)对,在之间混合(默认 None:图像自身的颜色)。colorscale_axis色阶所依据的值:1 为 y,0 为 x(默认 1)。
dt曲线的各段在每处不连续点前多远停止,以曲线参数为单位(默认 1e-8)。
discontinuities曲线断开的参数值:曲线在这些值之间分段绘制(默认 None:无)。
use_smoothing采样点是否通过过它们的平滑曲线连接,而非用直线段连接(默认 True)。
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 移动至的状态。
返回 一个新的 ParametricFunction,未添加到坐标轴。
源码
manimgx\mobjects\plotting.py
图像上的点¶
input_to_graph_point
¶

代码
import numpy as np
import manimgx as m
class AxesInputToGraphPointExample(m.Scene):
def construct(self) -> None:
axes = m.Axes(x_range=[0, 7], y_range=[-1.5, 1.5, 0.5])
curve = axes.plot(np.cos, color=m.BLUE)
dots = m.VGroup(
*(m.Dot(axes.i2gp(x, curve), radius=0.12) for x in range(7))
)
self.add(axes, curve, dots.set_color(m.YELLOW))
在输入处找图像的点:plot 的图像在 x 处;其他曲线在其参数的某个值处。
i2gp 是其简写名。输入可以超出图像的末端:该点为其函数在所绘部分之外的值。
x输入:图像的 x,在坐标轴坐标系中。
graph图像或曲线。
返回 点,在场景坐标系中。
源码
manimgx\mobjects\plotting.py
i2gp
¶
input_to_graph_point 的简写名。
input_to_graph_coords
¶
找图像在输入处的点的坐标:plot 的图像为 (x, f(x));其他曲线为其参数某值处的点的坐标。
x输入:图像的 x。
graph图像或曲线。
返回 点的坐标,(x, y)。
源码
manimgx\mobjects\plotting.py
get_graph_label
¶

代码
import numpy as np
import manimgx as m
class AxesGetGraphLabelExample(m.Scene):
def construct(self) -> None:
axes = m.Axes(x_range=[-4, 4], y_range=[-2, 4], x_length=11)
parabola = axes.plot(lambda x: x**2 / 4, color=m.BLUE)
sine = axes.plot(np.sin, color=m.YELLOW)
parabola_label = axes.get_graph_label(parabola, "x^2 / 4")
sine_label = axes.get_graph_label(
sine, r"\sin x", x_val=m.PI / 2, direction=m.UP, dot=True
)
self.add(axes, parabola, sine, parabola_label, sine_label)
为图像制作标签,在其某个点旁:采用图像的颜色,除非给出其他颜色。
字符串或数字用坐标轴的 label_constructor 排版(默认按数学排版,用 MathTex);mobject 按原样使用,并重新着色。标签放在图像在 x_val 处的点旁,朝 direction 方向,然后若在屏幕外则移回屏幕上。未给出 x_val 时,该点为 x 轴范围内一百个点中最右侧的、位于画框顶部下方的点。
axes.get_graph_label(graph, label='f(x)', x_val=None, direction=RIGHT, buff=MED_SMALL_BUFF, color=None, dot=False, dot_config=None)
label标签:字符串或数字,按数学排版,或 mobject。
x_val标签所放的点的 x;None 表示屏幕上最右侧的。
direction标签从该点放置的方向。
buff点与标签之间的间距,以场景单位计。
color标签的颜色;None 表示图像的。
dot是否有一个点标记该点,作为标签的一部分。
dot_config点的 样式关键字;None 表示无。
返回 标签,未添加到坐标轴。
源码
manimgx\mobjects\plotting.py
2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 | |
get_T_label
¶
代码
import numpy as np
import manimgx as m
class AxesGetTLabelExample(m.Scene):
def construct(self) -> None:
axes = m.Axes(x_range=[0, 10], y_range=[0, 10], y_length=6)
graph = axes.plot(lambda x: 3 * np.sqrt(x), color=m.BLUE)
t_label = axes.get_T_label(4, graph, label=m.MathTex("x = 4"))
self.add(axes, graph)
self.play(m.FadeIn(t_label))
为某个 x 值制作 T 标签:x 轴下方一个朝上指向该值的小三角形、三角形下方的标签,以及从 x 轴向上到图像的线。
axes.get_T_label(x_val, graph, label=None, label_color=None, triangle_size=MED_SMALL_BUFF, triangle_color=WHITE, line_func=Line, line_color=PURE_YELLOW)
x_val它标记的 x 值。
graph线所达到的图像。
label三角形下方的标签:字符串或数字,按数学排版,或 mobject;None 表示无。
label_color标签的颜色;None 表示保持原样。
triangle_size三角形的高度,以场景单位计。
triangle_color三角形的颜色。
line_func线的类:Line(实线)、DashedLine、…。
line_color线的颜色。
返回 标签(若有)、三角形和线的新组;未添加到坐标轴。
源码
manimgx\mobjects\plotting.py
get_vertical_lines_to_graph
¶
代码
import numpy as np
import manimgx as m
class AxesGetVerticalLinesToGraphExample(m.Scene):
def construct(self) -> None:
axes = m.Axes(x_range=[0, 8], y_range=[-1, 1, 0.5], y_length=5)
curve = axes.plot(
lambda x: np.sin(2 * x) * np.exp(-x / 4), color=m.YELLOW
)
lines = axes.get_vertical_lines_to_graph(
curve, x_range=[0.5, 7.5], num_lines=15, color=m.BLUE
)
self.add(axes, curve)
self.play(m.Create(lines))
制作从 x 轴到图像的线,在某 x 范围内均匀分布:虚线,未设置样式时为白色细线。
x_rangex 的范围,
[x_min, x_max]:第一条线在 x_min 处,最后一条在 x_max 处;None 表示 x 轴的范围。num_lines线的数量。
line_func线的类(默认 DashedLine;Line 是实线)。
line_config线的 虚线关键字,但不包括其颜色和宽度,由
color和stroke_width设置(默认 None:无)。color线的颜色(默认 None:白色)。
stroke_width线的宽度,以场景单位的百分之一计(默认 2)。
返回 线的新组,从左到右;未添加到坐标轴。
源码
manimgx\mobjects\plotting.py
面积¶
get_area
¶

代码
import manimgx as m
class AxesGetAreaExample(m.Scene):
def construct(self) -> None:
axes = m.Axes(x_range=[0, 5], y_range=[0, 6], y_length=6.5)
curve = axes.plot(lambda x: 5 - (x - 2.5) ** 2 / 2, color=m.BLUE)
line = axes.plot(lambda x: x / 2, color=m.YELLOW)
under = axes.get_area(curve, x_range=(0.5, 2))
between = axes.get_area(
curve, x_range=(3, 4.5), bounded_graph=line, color=m.RED
)
self.add(axes, under, between, curve, line)
制作图像与 x 轴之间、或两个图像之间在某 x 范围内的面积:一个多边形,未设置样式时从蓝到绿且半透明。
面积的边缘跟随图像自身的点,沿 x 轴闭合,或沿 bounded_graph 返回;其填充和轮廓都采用 color 和 opacity。两个范围不相交的图像引发 ValueError。
x_rangex 的范围,
(x_min, x_max);None 表示图像的。color面积的颜色,或渐变颜色。
opacity面积的不透明度,从 0 到 1。
bounded_graph面积所达到的第二个图像,而非 x 轴;None 表示 x 轴。仅覆盖两个图像都跨越的范围。
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 移动至的状态。
还接受 样式关键字。
返回 一个新的 Polygon,未添加到坐标轴。
源码
manimgx\mobjects\plotting.py
2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 | |
get_riemann_rectangles
¶
代码
import manimgx as m
class AxesGetRiemannRectanglesExample(m.Scene):
def construct(self) -> None:
axes = m.Axes(x_range=[-3, 3], y_range=[-2, 4], y_length=6.5)
graph = axes.plot(lambda x: x**2 / 2 - 1, color=m.YELLOW)
coarse, fine = (
axes.get_riemann_rectangles(graph, x_range=[-2.5, 2.5], dx=dx)
for dx in (0.5, 0.1)
)
self.add(axes, coarse, graph)
self.play(m.Transform(coarse, fine), run_time=2)
为图像制作黎曼矩形:从 x 轴(或第二个图像)到图像,宽 dx,其颜色为渐变;未设置样式时以黑色细线勾边。
矩形从 x_range 的起点处每 dx 开始一个,最后一个在其终点之前。每个从 x 轴——或从 bounded_graph,在其左边缘——升到图像在其左边缘、右边缘或中心处(input_sample_type)。带 show_signed_area 时,图像低于其基线的矩形取其颜色的反色。
graphplot 的图像。
x_range矩形覆盖的 x 的范围,
[x_min, x_max];None 表示图像的(以及两者都有的bounded_graph的)。dx矩形的宽度,以坐标轴单位计。
input_sample_type每个矩形与图像相遇的位置:
"left"、"right"或"center"。stroke_width矩形轮廓的宽度,以场景单位的百分之一计。
stroke_color轮廓的颜色(除非
blend)。fill_opacity矩形的不透明度,从 0 到 1。
color矩形的颜色,或从第一个矩形到最后一个的渐变颜色。
show_signed_area图像低于其基线的矩形是否取其颜色的反色。
bounded_graph第二个 plot 的图像,矩形从其升起;None 表示 x 轴。
blend每个轮廓是否取其矩形的颜色,而非
stroke_color。width_scale_factor每个矩形比
dx宽多少,使相邻矩形无缝相接。
返回 矩形的新组,从左到右;未添加到坐标轴。
源码
manimgx\mobjects\plotting.py
2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 | |
斜率¶
slope_of_tangent
¶
在输入处找图像切线的斜率:其导数 dy/dx,在坐标轴坐标系中。
它是 angle_of_tangent 角度的正切。
x输入:plot 的图像的 x。
dx取切线的步长,以坐标轴单位计。
源码
manimgx\mobjects\plotting.py
angle_of_tangent
¶
在输入处找图像切线的角度,在坐标轴坐标系中。
切线从图像在 x 处的点取到其在 x + dx 处的点。
x输入:plot 的图像的 x。
dx取切线的步长,以坐标轴单位计。
返回 角度,以弧度计,从 x 轴方向逆时针起,在坐标轴坐标系中测量:而非按绘制时(其中单位不同)。
源码
manimgx\mobjects\plotting.py
get_secant_slope_group
¶
代码
import manimgx as m
class AxesGetSecantSlopeGroupExample(m.Scene):
def construct(self) -> None:
axes = m.Axes(x_range=[0, 5], y_range=[0, 7], y_length=6.5)
graph = axes.plot(lambda x: x**2 / 4, color=m.BLUE)
secant = axes.get_secant_slope_group(
2,
graph,
dx=2,
dx_label="dx",
dy_label="dy",
secant_line_length=7,
secant_line_color=m.RED,
)
self.add(axes, graph)
self.play(m.Create(secant))
在图像上制作割线的构造,在其 x 和 x + dx 处的点之间:腿 dx 和 df、它们的标签,以及过两点的割线。
dx 腿从第一个点横跨,df 腿向上(或向下)到第二个点,采用图像的颜色,除非给出其他颜色。标签按数学排版(除非是 mobject),一起缩小以适应其腿(到 dx 腿宽和 df 腿高的 80%),放在 dx 腿下方和 df 腿右侧(负 dx 时在上方和左侧),每个采用其腿的颜色。割线长 secant_line_length,在两点之间居中。
x第一个点的输入:其 x。
dx到第二个点的步长,以坐标轴单位计;None 表示 x 轴范围的十分之一。
dx_line_colordx 腿的颜色。
dy_line_colordf 腿的颜色;None 表示图像的。
dx_labeldx 腿的标签:字符串、数字或 mobject;None 表示无。
dy_labeldf 腿的标签,同上;None 表示无。
include_secant_line构造是否包含割线。
secant_line_color割线的颜色。
secant_line_length割线的长度,以场景单位计。
返回
一个新的 SecantSlopeGroup,未添加到坐标轴:其部分为 dx_line、df_line、dx_label、df_label 和 secant_line。
源码
manimgx\mobjects\plotting.py
2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 | |
SecantSlopeGroup
¶
CurveOptions
¶
曲线如何被采样和平滑,附带样式关键字:plot 及其他曲线的关键字,用于传递它们的方法。
dt曲线的各段在每处不连续点前多远停止,以曲线参数为单位(默认 1e-8)。
discontinuities曲线断开的参数值:曲线在这些值之间分段绘制(默认 None:无)。
use_smoothing采样点是否通过过它们的平滑曲线连接,而非用直线段连接(默认 True)。
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 移动至的状态。
ImplicitOptions
¶
ImplicitFunction 的平滑处理,附带样式关键字,用于传递它们的方法 (plot_implicit_curve)。
use_smoothing曲线是否通过其点平滑连接,而非用直线段绘制(默认 True)。
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 移动至的状态。
use_smoothing
¶
曲线是否通过其点平滑连接,而非用直线段绘制(默认 True)。
PlotOptions
¶
plot 除函数外的关键字,用于传递它们的方法 (plot_derivative_graph、 plot_antiderivative_graph):x 的范围和色阶,附带曲线关键字。
x_range图像所跨越的 x 的范围,
[x_min, x_max]或[x_min, x_max, x_step],函数每x_step采样一次(默认 None:x 轴的范围;未给出步长时为 x 轴的十分之一)。use_vectorized函数是否一次性接收所有 x 值(作为数组)(默认 False:无论如何都会先尝试用数组,若不接受则每个值调用一次)。
colorscale按值给图像上色的颜色:颜色在坐标轴范围内均匀分布,或
(color, value)对,在之间混合(默认 None:图像自身的颜色)。colorscale_axis色阶所依据的值:1 为 y,0 为 x(默认 1)。
dt曲线的各段在每处不连续点前多远停止,以曲线参数为单位(默认 1e-8)。
discontinuities曲线断开的参数值:曲线在这些值之间分段绘制(默认 None:无)。
use_smoothing采样点是否通过过它们的平滑曲线连接,而非用直线段连接(默认 True)。
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 移动至的状态。
x_range
¶
图像所跨越的 x 的范围,[x_min, x_max] 或 [x_min, x_max, x_step],函数每 x_step 采样一次(默认 None:x 轴的范围;未给出步长时为 x 轴的十分之一)。
use_vectorized
¶
函数是否一次性接收所有 x 值(作为数组)(默认 False:无论如何都会先尝试用数组,若不接受则每个值调用一次)。
colorscale
¶
按值给图像上色的颜色:颜色在坐标轴范围内均匀分布,或 (color, value) 对,在之间混合(默认 None:图像自身的颜色)。
colorscale_axis
¶
色阶所依据的值:1 为 y,0 为 x(默认 1)。
AxisLine
¶
从坐标轴到点的线的关键字 (get_vertical_line 等):其类、其关键字、其颜色和其宽度。
line_func线的类(默认 DashedLine;Line 是实线)。
line_config线的 虚线关键字,但不包括其颜色和宽度,由
color和stroke_width设置(默认 None:无)。color线的颜色(默认 None:白色)。
stroke_width线的宽度,以场景单位的百分之一计(默认 2)。