0

0

Manim教程:在plot_line_graph中隐藏顶点圆点

花韻仙語

花韻仙語

发布时间:2025-12-05 11:16:31

|

583人浏览过

|

来源于php中文网

原创

Manim教程:在plot_line_graph中隐藏顶点圆点

本文详细介绍了在manim中使用`plot_line_graph`方法绘制线图时,如何隐藏默认显示的顶点圆点。通过简单设置`add_vertex_dots`参数为`false`,用户可以轻松创建无顶点标记的干净线图,从而更好地控制图表的视觉呈现。教程提供了具体的代码示例,帮助读者快速掌握这一技巧,提升manim动画的专业性和美观度。

在Manim中创建动态图表是数据可视化的强大功能之一。Axes类提供的plot_line_graph方法是绘制线图的常用工具。然而,默认情况下,该方法会在线图的每个数据点(即顶点)处绘制一个小圆点,这在某些设计场景下可能并非所愿。本教程将深入探讨如何精确控制plot_line_graph的顶点显示,特别是在需要隐藏这些默认圆点时。

理解plot_line_graph的默认行为

plot_line_graph方法旨在根据一系列数据点绘制折线图。其默认行为是不仅连接这些数据点形成线条,还会在线条的每个顶点处添加一个视觉标记,即一个小的圆点。虽然这在很多情况下有助于突出数据点,但在追求简洁或特定美学效果时,这些圆点可能会显得多余。

解决方案:add_vertex_dots参数

Manim的plot_line_graph方法提供了一个名为add_vertex_dots的布尔类型参数,专门用于控制顶点圆点的显示。该参数的默认值为True,这意味着圆点会被绘制。要隐藏这些圆点,只需将add_vertex_dots参数设置为False即可。

参数详解

  • add_vertex_dots:
    • 类型:bool
    • 默认值:True
    • 作用:当设置为True时,Manim会在每个数据点(顶点)处绘制一个圆点;当设置为False时,这些圆点将被隐藏,只显示连接数据点的线条。

示例代码

以下Manim代码示例演示了如何使用add_vertex_dots参数来控制顶点圆点的显示。我们将首先展示默认带有圆点的线图,然后展示如何通过设置参数来隐藏它们。

Lumen5
Lumen5

一个在线视频创建平台,AI将博客文章转换成视频

下载
from manim import *

class HidePlotLineGraphDots(Scene):
    def construct(self):
        # 1. 设置坐标系
        axes = Axes(
            x_range=[0, 10, 1],
            y_range=[0, 10, 1],
            x_length=7,
            y_length=5,
            axis_config={"color": BLUE},
            tips=False # 隐藏坐标轴箭头
        ).to_edge(UP + LEFT, buff=0.5) # 将坐标系放置在左上角

        labels = axes.get_axis_labels(x_label="X", y_label="Y")

        # 2. 定义数据点
        data_points = [(0, 0), (2, 4), (4, 1), (6, 7), (8, 3), (10, 5)]

        # 3. 演示默认行为:带有顶点圆点的线图
        graph_with_dots = axes.plot_line_graph(
            data_points,
            line_color=RED,
            add_vertex_dots=True # 显式设置为True,与默认行为一致
        )
        title_with_dots = Text("默认行为:带顶点圆点", font_size=28).next_to(axes, UP)

        self.play(Create(axes), Create(labels))
        self.play(Create(graph_with_dots), Write(title_with_dots))
        self.wait(2)

        # 4. 演示如何隐藏顶点圆点
        # 为了清晰对比,我们将旧图淡出,然后在新位置绘制新图
        self.play(FadeOut(graph_with_dots), FadeOut(title_with_dots))

        # 创建一个新的坐标系或移动旧的,这里我们为了教程的简洁性,在原位置绘制
        # 实际应用中,你可能需要根据动画需求调整Mobject的位置
        graph_no_dots = axes.plot_line_graph(
            data_points,
            line_color=GREEN,
            add_vertex_dots=False # 关键:设置为False以隐藏圆点
        )
        title_no_dots = Text("解决方案:不带顶点圆点", font_size=28).next_to(axes, UP)

        self.play(Create(graph_no_dots), Write(title_no_dots))
        self.wait(2.5)

        self.play(FadeOut(graph_no_dots), FadeOut(title_no_dots), FadeOut(axes), FadeOut(labels))

运行上述代码的步骤:

  1. 确保你已安装Manim。如果未安装,请参考Manim官方文档进行安装。
  2. 将上述代码保存为.py文件(例如hide_dots.py)。
  3. 在命令行中导航到文件所在目录,并运行:
    manim -pql hide_dots.py HidePlotLineGraphDots

    这将生成一个低质量的预览视频,展示带有顶点圆点和不带顶点圆点的线图。

注意事项

  • 版本兼容性: 确保你使用的是Manim Community Edition的最新稳定版本,以保证add_vertex_dots参数的可用性和预期行为。
  • 其他自定义选项: 即使隐藏了顶点圆点,你仍然可以通过line_color、line_stroke_width等参数来自定义线条的样式。如果你希望保留圆点但改变其外观,可以探索vertex_dot_radius和vertex_dot_color等参数。
  • 动画策略: 在实际的Manim动画中,你可能需要更复杂的动画策略来展示两种图表之间的过渡,例如使用Transform或ReplacementTransform。本教程中的示例为了突出参数的使用,采用了简单的淡入淡出。

总结

通过简单地将plot_line_graph方法的add_vertex_dots参数设置为False,你可以轻松地在Manim中绘制出没有顶点圆点的干净线图。这一技巧对于那些追求极简风格或希望通过其他方式(如自定义标记)来表示数据点的用户来说非常有用。掌握此参数的使用,将使你在Manim图表绘制方面拥有更大的灵活性和控制力。

相关专题

更多
Java JVM 原理与性能调优实战
Java JVM 原理与性能调优实战

本专题系统讲解 Java 虚拟机(JVM)的核心工作原理与性能调优方法,包括 JVM 内存结构、对象创建与回收流程、垃圾回收器(Serial、CMS、G1、ZGC)对比分析、常见内存泄漏与性能瓶颈排查,以及 JVM 参数调优与监控工具(jstat、jmap、jvisualvm)的实战使用。通过真实案例,帮助学习者掌握 Java 应用在生产环境中的性能分析与优化能力。

3

2026.01.20

PS使用蒙版相关教程
PS使用蒙版相关教程

本专题整合了ps使用蒙版相关教程,阅读专题下面的文章了解更多详细内容。

55

2026.01.19

java用途介绍
java用途介绍

本专题整合了java用途功能相关介绍,阅读专题下面的文章了解更多详细内容。

67

2026.01.19

java输出数组相关教程
java输出数组相关教程

本专题整合了java输出数组相关教程,阅读专题下面的文章了解更多详细内容。

37

2026.01.19

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

10

2026.01.19

xml格式相关教程
xml格式相关教程

本专题整合了xml格式相关教程汇总,阅读专题下面的文章了解更多详细内容。

11

2026.01.19

PHP WebSocket 实时通信开发
PHP WebSocket 实时通信开发

本专题系统讲解 PHP 在实时通信与长连接场景中的应用实践,涵盖 WebSocket 协议原理、服务端连接管理、消息推送机制、心跳检测、断线重连以及与前端的实时交互实现。通过聊天系统、实时通知等案例,帮助开发者掌握 使用 PHP 构建实时通信与推送服务的完整开发流程,适用于即时消息与高互动性应用场景。

16

2026.01.19

微信聊天记录删除恢复导出教程汇总
微信聊天记录删除恢复导出教程汇总

本专题整合了微信聊天记录相关教程大全,阅读专题下面的文章了解更多详细内容。

152

2026.01.18

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

139

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
React 教程
React 教程

共58课时 | 3.9万人学习

Pandas 教程
Pandas 教程

共15课时 | 0.9万人学习

ASP 教程
ASP 教程

共34课时 | 3.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号