用python的manim库实现表格格式操作【table 下】

1.Table 是 Manim 中用于创建一个包含文本或其他 数学符号的表格的类

Table 是 Manim 中用于创建一个包含文本或其他 数学符号的表格的类它能够帮助你在场景中清晰地展示数据或信息。

参数解释

  1. table:

    • 一个二维数组或列表,表示表格中的内容。每个子列表代表表格的一行。
  2. row_labels:

    • 可选参数,用于定义行标签的列表,标签应与 table 的行数相一致。若没有提供,表格将不显示行标签。
  3. col_labels:

    • 可选参数,用于定义列标签的列表,标签应与 table 的列数相一致。若没有提供,表格将不显示列标签。
  4. top_left_entry:

    • 可选参数,它指定表格的左上角单元格的内容。通常可以用作标题或说明。
  5. v_buff:

    • 垂直间距的设置,用于调整表格行之间的距离。默认值为 0.8。
  6. h_buff:

    • 水平间距的设置,用于调整表格列之间的距离。默认值为 1.3。
  7. include_outer_lines:

    • 布尔值,若设置为 True,则表格将包含外部边框线。默认值为 False
  8. add_background_rectangles_to_entries:

    • 布尔值,若设置为 True,每个单元格后面将添加一个背景矩形。默认值为 False
  9. entries_background_color:

    • 设置单元格背景矩形的颜色。默认为黑色。
  10. include_background_rectangle:

    • 布尔值,若设置为 True,表格整体将包含一个背景矩形。默认值为 False
  11. background_rectangle_color:

    • 设置表格背景矩形的颜色。默认为黑色。
  12. element_to_mobject:

    • 用于将表格中的每个元素转换成对应的 Mobject,默认为 Paragraph 类,用于显示文本。你可以自定义使用不同的 Mobject 类。
  13. element_to_mobject_config:

    • 用于传递给 element_to_mobject 的配置字典,允许你在创建 Mobject 时进行额外的设置。
  14. arrange_in_grid_config:

    • 用于配置表格排列的设置,允许你控制表格的布局方式。
  15. line_config:

    • 用于配置与线条相关的设置,如线的颜色、宽度等。
  16. kwargs:

    • 其他可选的关键字参数,用于配置表格的其他特性。

使用示例

以下是一个简单的示例,展示如何使用 Table 创建一个基本的文本表格:

from manim import *class TableExamples(Scene):def construct(self):t0 = Table([["This", "is a"],["simple", "Table in \n Manim."]])t1 = Table([["This", "is a"],["simple", "Table."]],row_labels=[Text("R1"), Text("R2")],col_labels=[Text("C1"), Text("C2")])t1.add_highlighted_cell((2,2), color=YELLOW)t2 = Table([["This", "is a"],["simple", "Table."]],row_labels=[Text("R1"), Text("R2")],col_labels=[Text("C1"), Text("C2")],top_left_entry=Star().scale(0.3),include_outer_lines=True,arrange_in_grid_config={"cell_alignment": RIGHT})t2.add(t2.get_cell((2,2), color=RED))t3 = Table([["This", "is a"],["simple", "Table."]],row_labels=[Text("R1"), Text("R2")],col_labels=[Text("C1"), Text("C2")],top_left_entry=Star().scale(0.3),include_outer_lines=True,line_config={"stroke_width": 1, "color": YELLOW})t3.remove(*t3.get_vertical_lines())g = Group(t0,t1,t2,t3).scale(0.7).arrange_in_grid(buff=1)self.add(g)

 运行结果:

 示例2:

from manim import *class BackgroundRectanglesExample(Scene):def construct(self):background = Rectangle(height=6.5, width=13)background.set_fill(opacity=.5)background.set_color([TEAL, RED, YELLOW])self.add(background)t0 = Table([["我", "她"],["男", "女"]],add_background_rectangles_to_entries=True)t1 = Table([["This", "is a"],["simple", "Table."]],include_background_rectangle=True)g = Group(t0, t1).scale(0.7).arrange(buff=0.5)self.add(g)

 运行结果:

2.高亮指定单元格的函数【add_highlighted_cell

 add_highlighted_cell 是一个用于在 Manim 表格中高亮指定单元格的函数。以下是对这个函数及其参数的详细解释:

函数:add_highlighted_cell

add_highlighted_cell(pos=(1, 1), color=ManimColor('#FFFF00'), **kwargs)
参数:
  1. pos (default: (1, 1))

    • 类型:tuple
    • 描述:指定要高亮的单元格的位置。通常是一个以 (row_index, col_index) 形式给出的位置,索引从 0 开始。例如,(1, 1) 表示第二行第二列的单元格。
  2. color (default: ManimColor('#FFFF00'))

    • 类型:ManimColor
    • 描述:指定高亮显示的颜色。可以使用颜色代码(如 '#FFFF00' 表示黄色),也可以使用其他预定义的 Manim 颜色,例如 REDBLUE, 等等。
  3. kwargs

    • 描述:额外的参数,可以根据具体需求添加,例如设置单元格的透明度、边框等属性。这些参数将传递给底层的显示逻辑。

使用示例

如果在一个 Table 对象中调用 add_highlighted_cell

from manim import *class AddHighlightedCellExample(Scene):def construct(self):table = Table([["First", "Second"],["Third","Fourth"]],row_labels=[Text("R1"), Text("R2")],col_labels=[Text("C1"), Text("C2")])table.add_highlighted_cell((2,2), color=GREEN)self.add(table)

 运行结果:

 3.对表格元素进行操作的主要函数

下面是对 get_cellget_col_labelsget_columnsget_entriesget_entries_without_labels 以及 get_highlighted_cell 等函数的详细解释,包括参数和使用示例。

函数及其参数

  1. get_cell(pos=(1, 1), **kwargs)

    • pos (default: (1, 1))
      • 类型:tuple
      • 描述:指定要获取的单元格的位置,通常是 (row_index, col_index)
      • 示例:
        from manim import *class GetCellExample(Scene):def construct(self):table = Table([["First", "Second"],["Third","Fourth"]],row_labels=[Text("R1"), Text("R2")],col_labels=[Text("C1"), Text("C2")])cell = table.get_cell((2,3), color=RED)self.add(table, cell)
        
      • kwargs
        • 描述:额外的参数,用于指定其他获取单元的属性。
      • 运行结果:

  2. get_col_labels()

    • 描述:获取表格的列标签,通常返回一个包含所有列标签的列表或数组。
    • from manim import *class GetColLabelsExample(Scene):def construct(self):table = Table([["First", "Second"],["Third","Fourth"]],row_labels=[Text("R1"), Text("R2")],col_labels=[Text("C1"), Text("C2")])lab = table.get_col_labels()for item in lab:item.set_color(random_bright_color())self.add(table)

      运行结果:

  3. get_columns()

    • 描述:获取表格中的所有列,返回各个列的集合。
    • class GetColumnsExample(Scene):def construct(self):table = Table([["First", "Second"],["Third","Fourth"]],row_labels=[Text("R1"), Text("R2")],col_labels=[Text("C1"), Text("C2")])table.add(SurroundingRectangle(table.get_columns()[1].set_color(RED)).set_color(GREEN))self.add(table)

      运行结果:

  4. get_entries(pos=None)

    • pos (default: None)
      • 类型:tuple 或 None
      • 描述:如果给定,返回指定单元格的内容;如果 None,返回所有单元格的内容。
      • 示例:
        class GetEntriesExample(Scene):def construct(self):table = Table([["First", "Second"],["Third","Fourth"]],row_labels=[Text("R1"), Text("R2")],col_labels=[Text("C1"), Text("C2")])ent = table.get_entries()for item in ent:item.set_color(random_bright_color())table.get_entries((2,2)).rotate(PI/6).scale(1).set_color(RED)self.add(table)

        运行结果:

  5. get_entries_without_labels(pos=None)

    • pos (default: None)
      • 类型:tuple 或 None
      • 描述:如果给定,返回指定单元格的内容,但不包括标签;如果 None,返回所有单元格内容而不包括标签。
      • class GetEntriesWithoutLabelsExample(Scene):def construct(self):table = Table([["First", "Second"],["Third","Fourth"]],row_labels=[Text("R1"), Text("R2")],col_labels=[Text("C1"), Text("C2")])ent = table.get_entries_without_labels()colors = [BLUE, GREEN, YELLOW, RED]for k in range(len(colors)):ent[k].set_color(colors[k])table.get_entries_without_labels((2,2)).rotate(PI)self.add(table)

        运行结果:

  6. get_highlighted_cell(pos=(1, 1), color=ManimColor('#FFFF00'), **kwargs)

    • pos (default: (1, 1))
      • 类型:tuple
      • 描述:指定要高亮的单元格的位置。
    • color (default: ManimColor('#FFFF00'))
      • 类型:ManimColor
      • 描述:指定高亮显示的颜色。
    • kwargs
      • 描述:额外的参数,可以用来影响高亮效果的其他属性。
      • 示例:
        class GetHighlightedCellExample(Scene):def construct(self):table = Table([["First", "Second"],["Third","Fourth"]],row_labels=[Text("R1"), Text("R2")],col_labels=[Text("C1"), Text("C2")],include_outer_lines=True,)highlight = table.get_highlighted_cell((2,2), color=GREEN)table.add_to_back(highlight)self.add(table)

 

4.对表格格式进行操作

在 Manim 的表格模块中,get_horizontal_lines(),get_labels(),get_row_labels(),get_rows(),get_vertical_lines(),scale(scale_factor, **kwargs),set_column_colors(*colors),set_row_colors(*colors)以上函数对表格格式进行操作,以下内容是函数和它们的参数说明:

 1.对线条进行操作:

1. get_horizontal_lines():此方法返回表格中所有的水平线元件。你可以利用这个方法,来提取和操作表格中的水平线。

2. get_vertical_lines():此方法返回表格中所有的竖直线元件,可以帮助你提取和操作表格中的竖直线。

 示例代码:

class GetHorizontalLinesExample(Scene):def construct(self):table = Table([["First", "Second"],["Third","Fourth"]],row_labels=[Text("R1"), Text("R2")],col_labels=[Text("C1"), Text("C2")],include_outer_lines=True,)table.get_horizontal_lines()[0].set_color(RED)table.get_horizontal_lines()[2].set_color(RED)table.get_vertical_lines()[2].set_color(RED)self.add(table)

 运行结果:

3. get_labels()

        该方法返回表格的所有标签(通常是列标签)作为一个列表。你可以对这些标签进行遍历或访问。

from manim import *class GetLabelsExample(Scene):def construct(self):table = Table([["First", "Second"],["Third","Fourth"]],row_labels=[Text("R1"), Text("R2")],col_labels=[Text("C1"), Text("C2")])lab = table.get_labels()colors = [BLUE, GREEN, YELLOW, RED]for k in range(len(colors)):lab[k].set_color(colors[k])self.add(table)

4. get_row_labels()

        此方法返回表格中所有的行标签。类似于 get_labels() ,但专注于行的标签。

from manim import *class GetRowLabelsExample(Scene):def construct(self):table = Table([["First", "Second"],["Third","Fourth"]],row_labels=[Text("R1"), Text("R2")],col_labels=[Text("C1"), Text("C2")])lab = table.get_row_labels()for item in lab:item.set_color(random_bright_color())self.add(table)

5. get_rows()

        该方法返回表格中的每一行,通常是以列表的形式返回每一行对应的条目。

from manim import *class GetRowsExample(Scene):def construct(self):table = Table([["First", "Second"],["Third","Fourth"]],row_labels=[Text("R1"), Text("R2")],col_labels=[Text("C1"), Text("C2")])table.add(SurroundingRectangle(table.get_rows()[1]))self.add(table)

6. scale(scale_factor, **kwargs)

        这是一个用于缩放表格的通用函数,scale_factor 是缩放因子,用于控制表格的大小。**kwargs 可以用于传递额外参数(如 about_point,这可以定义缩放的中心点),允许你灵活调整表格的缩放方式。

from manim import *class MobjectScaleExample(Scene):def construct(self):f1 = Text("F")f2 = Text("F").scale(2)f3 = Text("F").scale(0.5)f4 = Text("F").scale(-1)vgroup = VGroup(f1, f2, f3, f4).arrange(6 * RIGHT)self.add(vgroup)

7. set_column_colors(*colors)

        该方法允许你为表格的每一列设置颜色。*colors 可以是要应用于每一列的颜色列表,顺序对应于各列的顺序。如果颜色数量少于列数,多余的列将不会有颜色。

class SetColumnColorsExample(Scene):def construct(self):table = Table([["First", "Second"],["Third","Fourth"]],row_labels=[Text("R1"), Text("R2")],col_labels=[Text("C1"), Text("C2")]).set_column_colors([RED,BLUE], WHITE,[YELLOW,BLUE])self.add(table)

8. set_row_colors(*colors)

        此方法与 set_column_colors 类似,但它用于设置表格的每一行的颜色。*colors 是一个颜色列表,顺序对应于各行的顺序。如果颜色数量少于行数,多余的行将不会有颜色。

class SetRowColorsExample(Scene):def construct(self):table = Table([["First", "Second"],["Third","Fourth"]],row_labels=[Text("R1"), Text("R2")],col_labels=[Text("C1"), Text("C2")]).set_row_colors([RED,BLUE], WHITE,[YELLOW,BLUE])self.add(table)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/399959.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Web MVC

1. Spring Web MVC Spring Web MVC是⼀个Web框架 1.1 MVC 举个例子理解: Controller相当于前台,接送请求,传给相关部门,部门派人处理,此时这就是Model MVC是一种思想,Spring进行了实现,称为Spring MVC Spring Boot是创建Spring MVC项目的一种方式而已 1.2 Spring MVC 而…

(第二十七天)

上午 核心:内核中的 ipvs , ipvsadm 1 、安装 ipvsadm [rootnat ~] # yum -y install ipvsadm 2 、配置规则 查看所有的规则,如果已经配置好规则,重启之后也就没有了 [rootnat ~] # ipvsadm -L -n 1 、配置 vip 网卡 &…

如何用Python进行数据可视化、科技图表绘制?

目录 写在前面 推荐图书 推荐理由 写在最后 写在前面 有了它,科技图表绘制、数据可视化真的毫无难度! 推荐图书 《Python数据可视化:科技图表绘制》(芯智)【摘要 书评 试读】- 京东图书 图书简介 《Python数据可视化:科技图表绘制》结…

生成式人工智能(大语言模型)上线备案材料

材料总体一览 生成式人工智能(大语言模型)上线备案,除申请表外还需要提交五份材料: 《生成式人工智能 (大语言模型)上线备案申请表》 《附件1:安全自评估报告》 《附件2:模型服务协议…

Python(TensorFlow)衍射光学层卷积算法模拟(英伟达GPU)

🎯要点 🎯衍射光学卷积算法模拟 | 🎯模拟或数字电子计算之前加入一层光学计算 | 🎯前馈卷积神经网络计算成像系统对输入图像进行分类 | 🎯相位掩模利用线性空间不变成像系统执行固有卷积 📜用例 Python非…

大语言模型与多模态大模型loss计算

文章目录 前言一、大语言模型loss计算1、loss计算代码解读2、构建模型输入内容与label标签3、input_ids与labels格式 二、多模态大模型loss计算方法1、多模态loss计算代码解读2、多模态输入内容2、大语言模型输入内容3、图像embending如何嵌入文本embeding 前言 如果看了我前面…

MySQL学习[4] ——MySQL锁

四、MySQL锁 4.1 MySQL有哪些锁? 4.1.1 全局锁 全局锁就是**对整个数据库实例加锁,主要用于全库逻辑备份**等场景。 flush tables with read lock # 加全局锁unlock tables # 解锁加上全局(读)锁后,整个数据库都…

css实现水滴效果图

效果图&#xff1a; <template><div style"width: 100%;height:500px;padding:20px;"><div class"water"></div></div> </template> <script> export default {data() {return {};},watch: {},created() {},me…

spring mvc工作流程

Spring MVC 是基于模型-视图-控制器&#xff08;MVC&#xff09;设计模式的 Web 框架&#xff0c;它简化了开发 Web 应用程序的流程。下面是 Spring MVC 的工作流程详细介绍&#xff1a; 客户端请求 --> DispatcherServlet --> HandlerMapping --> Controller --&…

Win10 创建新的桌面2,并实现桌面切换

1. Win10 创建新的桌面2 Win - Tab 2. Win10 桌面切换 Ctrl - Win - ←/→ 我们下期见&#xff0c;拜拜&#xff01;

【大模型从入门到精通14】openAI API 构建和评估大型语言模型(LLM)应用2

这里写目录标题 评估大型语言模型&#xff08;LLM&#xff09;输出的方法构建评估标准实施评估协议利用专家比较案例研究评估客户服务聊天机器人学术文本摘要高级评估技术 评估大型语言模型&#xff08;LLM&#xff09;输出的方法 评估大型语言模型&#xff08;LLM&#xff09…

开源免费的表单收集系统TDuck

TDuck&#xff08;填鸭表单&#xff09;是一款开源免费的表单收集系统&#xff0c;它基于Apache 2.0协议开源&#xff0c;用户可以随时下载源码&#xff0c;自由修改和定制&#xff0c;也可以参与到项目的贡献和反馈中。TDuck表单系统不仅支持私有化部署&#xff0c;还提供了丰…

快排/堆排/归并/冒泡/

常见的内排序算法 插入排序 直接插入排序 原理&#xff1a;相当于扑克牌变成有序&#xff0c;先拿第一张&#xff0c;把他调节成有序&#xff0c;再拿第二张&#xff0c;与第一张相比找到第二张的位置&#xff0c;再继续拿第三张&#xff0c;以此类推。 void InsertSort(in…

【C++二分查找 贪心】792. 匹配子序列的单词数

本文涉及的基础知识点 C二分查找 贪心 LeetCode792. 匹配子序列的单词数 给定字符串 s 和字符串数组 words, 返回 words[i] 中是s的子序列的单词个数 。 字符串的 子序列 是从原始字符串中生成的新字符串&#xff0c;可以从中删去一些字符(可以是none)&#xff0c;而不改变其…

关于Vue项目npm快捷键,点击run启动报错,及npm i也报错的解决办法

1.配置idea的npm 2.点击运行按钮 3.结果 分析原因及问题&#xff1a; npm i npm run dev 由于是刚刚从gitlab新拉的前端代码&#xff0c;可能没有用命令install过类似于没有编译过&#xff0c;所以执行一下上面的命令 结果报错如下&#xff1a; F:\tbyf\qjyy\hip-manager-ui&…

密探 -- 渗透测试工具 v1.14 版

1.如何运行 在jdk8环境下&#xff08;在jdk8以上的高版本请参考常见问题1的处理方案&#xff09;运行以下语句运行: java -jar mitan-jar-with-dependencies.jar 若不想输入这么长太长语句&#xff0c;可以通过以下脚本的方式启动&#xff1a; Mac/Linux 环境下&#xff0c;…

计算机网络——HTTP协议详解(上)

一、HTTP协议简单介绍 1.1 什么是HTTP协议 HTTP&#xff08;超文本传输协议&#xff09;是一种用于在Web浏览器和Web服务器之间传输数据的应用层协议。它是一种无状态协议&#xff0c;即服务器不会保留与客户端的任何连接状态信息&#xff0c;每个请求都被视为一个独立的事务。…

Mysql-约束

概念&#xff1a; 约束是作用于表中字段上的规则&#xff0c;用于限制存储在表中的数据。 目的&#xff1a; 保存数据库中数据的正确&#xff0c;有效性和完整性。 分类&#xff1a; 注意事项&#xff1a;约束是作用在数据表中的字段上的&#xff0c;可以在创建表或修改表的时候…

【开端】Java 分页工具类运用

一、绪论 Java系统中&#xff0c;分页查询的场景随处可见&#xff0c;本节介com.baomidou.mybatisplus.core.metadata.IPage;来分页的工具类 二、分页工具类 public class PageUtils implements Serializable { private static final long serialVersionUID 1L; /**…

Luatos-lua For MacOSX

0x00 缘起 看到Luatos-soc-pc项目能够编译到MacOS平台并且运行&#xff0c;所以尝试编译&#xff1b;可是Apple Clang编译器太过于严格&#xff0c;导致编译不通过。遂换到gcc-11编译通过&#xff0c;虽然其中依旧会报错&#xff08;宏定义LUA_USE_MACOSX不起作用&#xff0c;导…