
本教程详细介绍了在 manim 中使用 `plot_line_graph` 方法绘制线图时,如何精确控制是否显示线图上的顶点圆点。通过调整 `add_vertex_dots` 参数,用户可以轻松地隐藏或显示这些默认出现的圆点,从而实现更精细的图形定制,提升动画视觉效果。
理解 plot_line_graph 与顶点圆点
Manim 是一个强大的数学动画库,其中 Axes.plot_line_graph 方法是用于在坐标系中绘制折线图的常用 工具。默认情况下,当您使用此方法绘制线图时,Manim 不仅会连接数据点形成线条,还会在每个数据点(即线图的顶点)处绘制一个小圆点。虽然这些圆点在很多情况下有助于突出数据点,但在某些设计或教学场景中,用户可能希望只显示线条,隐藏这些顶点圆点,以获得更简洁或特定的视觉效果。
隐藏顶点圆点的关键参数:add_vertex_dots
幸运的是,Manim 的 plot_line_graph 方法提供了一个名为 add_vertex_dots 的参数,专门用于控制这些顶点圆点的显示。
- 当 add_vertex_dots 参数设置为 True 时(这也是其默认值),Man 图会绘制出每个顶点上的圆点。
- 当 add_vertex_dots 参数设置为 False 时,这些顶点圆点将被隐藏,只有连接各点的线条会显示出来。
通过简单地设置此参数,您可以轻松地切换线图的显示模式。
示例代码:演示如何隐藏顶点圆点
下面的 Manim 代码示例将演示如何使用 plot_line_graph 方法绘制一个折线图,并特别展示如何通过设置 add_vertex_dots=False 来隐藏其顶点圆点。
from manim import * class HidePlotLineGraphDots(Scene): def construct(self): # 1. 设置坐标系 # 创建一个标准的坐标系,x 轴和 y 轴范围均为 0 到 10 axes = Axes(x_range=[0, 10, 1], y_range=[0, 10, 1], x_length=7, y_length=5, axis_config={"color": BLUE}, # 坐标轴颜色 x_axis_config={"numbers_to_include": range(0, 11, 2)}, # x 轴刻度 y_axis_config={"numbers_to_include": range(0, 11, 2)}, # y 轴刻度 ).add_coordinates() # 添加坐标数字 self.add(axes) # 2. 定义数据点 # plot_line_graph 期望一个列表的列表或元组,每个内部列表 / 元组代表一个点 [x, y] data_points = [[1, 2], [3, 5], [5, 4], [7, 8], [9, 6]] # 3. 绘制带有默认顶点圆点的线图(演示默认行为)# 这里我们明确设置 add_vertex_dots=True,其效果与省略此参数相同 line_graph_with_dots = axes.plot_line_graph(list_of_graph_points=data_points, line_color=red, # 线条颜色 vertex_dot_color=YELLOW, # 顶点圆点颜色 vertex_dot_radius=0.08, # 顶点圆点半径 add_vertex_dots=True # 明确指定显示圆点 ) label_with_dots = Text(" 默认带圆点 ", font_size=28, color=RED).next_to(line_graph_with_dots, UP) self.play(Create(line_graph_with_dots), Write(label_with_dots) ) self.wait(1.5) # 4. 隐藏顶点圆点:通过设置 add_vertex_dots=False # 创建一个新的线图 Mobject,这次将 add_vertex_dots 设置为 False line_graph_no_dots = axes.plot_line_graph(list_of_graph_points=data_points, line_color=GREEN, # 改变线条颜色以便区分 add_vertex_dots=False # 关键参数:设置为 False 以隐藏圆点) label_no_dots = Text(" 隐藏圆点 ", font_size=28, color=GREEN).next_to(line_graph_no_dots, UP) # 通过变换动画来演示圆点被隐藏的效果 self.play(Transform(line_graph_with_dots, line_graph_no_dots), Transform(label_with_dots, label_no_dots) ) self.wait(2)
如何运行此代码:
- 确保您已安装 Manim。如果没有,请参考 Manim 官方文档进行安装。
- 将上述代码保存为一个。py 文件(例如 hide_dots.py)。
- 在命令行中导航到该文件所在的目录,并运行以下命令:
manim -pql hide_dots.py HidePlotLineGraphDots- -p 表示播放动画。
- -q 表示渲染质量(ql 代表低质量,适合快速预览)。
- HidePlotLineGraphDots 是您定义的场景类名。
您将看到一个动画,首先显示带有黄色圆点的红色折线图,然后动画将其变换为不带圆点的绿色折线图,清晰地展示了 add_vertex_dots=False 的效果。
注意事项与总结
- 参数核心: add_vertex_dots 是控制 plot_line_graph 中顶点圆点显示的关键参数。
- 默认行为: 此参数的默认值为 True,意味着如果您不明确设置它,圆点将始终显示。
- 定制性: 即使您选择显示圆点(add_vertex_dots=True),Manim 也提供了其他参数如 vertex_dot_color、vertex_dot_radius 等,让您可以进一步定制圆点的颜色和大小。
- 应用场景: 隐藏顶点圆点在需要创建更流程化、不强调离散点的线图,或者在复杂图表中避免视觉混乱时特别有用。
通过灵活运用 add_vertex_dots 参数,Manim 用户可以更好地控制其线图的视觉呈现,使其动画更符合特定的教学或演示需求。建议查阅 Manim 官方文档中关于 Axes.plot_line_graph 的详细说明,以探索更多高级用法和参数组合。