博主原文链接:https://www.yourmetaverse.cn/nlp/424/
使用Gradio库创建交互式散点图
Gradio是一个强大的库,可以帮助我们快速创建交互式的数据可视化应用程序。其中的ScatterPlot模块是Gradio提供的一个组件,用于创建散点图。本文将介绍ScatterPlot模块的用法以及其change和clear两个方法。
散点图是一种常用的数据可视化方式,可以直观地展示数据的分布情况。Gradio库的ScatterPlot模块提供了一个方便易用的接口,可以快速创建交互式的散点图。
ScatterPlot模块的初始化参数非常丰富,可以通过设置这些参数来定制散点图的外观和行为。其中一些重要的参数包括:
- value:用于显示在散点图中的数据,可以是一个pandas DataFrame对象或一个可调用对象。
- x和y:分别对应散点图的x轴和y轴的数据列。
- color:用于确定散点的颜色的列名。
- size:用于确定散点的大小的列名。
- title:散点图的标题。
- tooltip:当用户将鼠标悬停在散点上时显示的提示信息。
除了这些基本参数外,ScatterPlot模块还提供了许多其他参数,用于设置坐标轴标题、图例标题、图例位置、图表大小等等。
在使用ScatterPlot模块时,我们可以通过change方法和clear方法来响应散点图的数值变化和清除操作。
change方法是一个监听器,当散点图的数值发生变化时被触发。我们可以将一个函数传递给change方法,这个函数通常是一个机器学习模型的预测函数。change方法会根据函数的参数与输入组件进行匹配,并将函数的返回值更新到输出组件上。
clear方法是另一个监听器,当用户点击散点图上的清除按钮时被触发。我们可以将一个函数传递给clear方法,这个函数会在用户清除散点图时执行一些操作,比如重置模型的状态或清空输出组件的值。
使用Gradio库创建交互式散点图非常简单。我们可以通过设置ScatterPlot模块的各种参数来自定义散点图的外观和行为,然后将其与其他组件组合在一起,形成一个完整的交互界面。
参数详解
下面是关于ScatterPlot模块参数以及change和clear方法的整理表格:
参数 | 数据类型 | 默认值 | 描述 |
---|---|---|---|
value | pd.DataFrame | Callable | None | None | 包含要在散点图中显示的数据的 pandas DataFrame 或可调用对象。如果是可调用对象,当应用程序加载时将调用该函数以设置组件的初始值。 |
x | str | None | None | 对应于 x 轴的列。 |
y | str | None | None | 对应于 y 轴的列。 |
color | str | None | None | 用于确定点颜色的列。如果该列包含数字数据,则 gradio 将对该列数据进行插值,以使小值对应浅色,大值对应深色。 |
size | str | None | None | 用于确定点大小的列。应包含数字数据,以便 gradio 可以将数据映射到点大小。 |
shape | str | None | None | 用于确定点形状的列。应包含分类数据。gradio 将每个唯一值映射到不同的形状。 |
title | str | None | None | 在图表顶部显示的标题。 |
tooltip | list[str] | str | None | None | 当用户悬停在图上的点上时,在工具提示中显示的列(或列的列表)。 |
x_title | str | None | None | 给 x 轴指定的标题。默认情况下,使用 x 参数的值。 |
y_title | str | None | None | 给 y 轴指定的标题。默认情况下,使用 y 参数的值。 |
color_legend_title | str | None | None | 给颜色图例指定的标题。默认情况下,使用 color 参数的值。 |
size_legend_title | str | None | None | 给大小图例指定的标题。默认情况下,使用 size 参数的值。 |
shape_legend_title | str | None | None | 给形状图例指定的标题。默认情况下,使用 shape 参数的值。 |
color_legend_position | Literal[‘left’, ‘right’, ‘top’, ‘bottom’, ‘top-left’, ‘top-right’, ‘bottom-left’, ‘bottom-right’, ‘none’] | None | None | 颜色图例的位置。如果传递字符串值 ‘none’,则省略此图例。有关其他有效位置值,请参见:https://vega.github.io/vega/docs/legends/#orientation。 |
size_legend_position | Literal[‘left’, ‘right’, ‘top’, ‘bottom’, ‘top-left’, ‘top-right’, ‘bottom-left’, ‘bottom-right’, ‘none’] | None | None | 大小图例的位置。如果传递字符串值 ‘none’,则省略此图例。有关其他有效位置值,请参见:https://vega.github.io/vega/docs/legends/#orientation。 |
shape_legend_position | Literal[‘left’, ‘right’, ‘top’, ‘bottom’, ‘top-left’, ‘top-right’, ‘bottom-left’, ‘bottom-right’, ‘none’] | None | None | 形状图例的位置。如果传递字符串值 ‘none’,则省略此图例。有关其他有效位置值,请参见:https://vega.github.io/vega/docs/legends/#orientation。 |
height | int | None | None | 图的高度(以像素为单位)。 |
width | int | None | None | 图的宽度(以像素为单位)。 |
x_lim | list[int | float] | None | None | 包含 x 轴限制的元组或列表,格式为 [x_min, x_max]。 |
y_lim | list[int | float] | None | None | 包含 y 轴限制的元组或列表,格式为 [y_min, y_max]。 |
caption | str | None | None | (可选)显示在图下方的说明。 |
interactive | bool | None | True | 用户是否可以通过鼠标或触控板进行平移或缩放与图的交互。 |
label | str | None | None | (可选)显示在图左上角的标签。 |
every | float | None | None | 如果 value 是可调用对象,则在客户端连接打开时每隔 ‘every’ 秒运行该函数。否则不起作用。队列必须启用。事件可通过此组件的 .load_event 属性访问(例如取消该事件)。 |
show_label | bool | True | 是否显示标签。 |
container | bool | True | 是否显示容器。 |
scale | int | None | None | 比例。 |
min_width | int | 160 | 最小宽度。 |
visible | bool | True | 图是否可见。 |
elem_id | str | None | None | 可选字符串,用作 HTML DOM 中此组件的 id。可用于指定 CSS 样式。 |
elem_classes | list[str] | str | None | None | 可选字符串列表,用作 HTML DOM 中此组件的类。可用于指定 CSS 样式。 |
change和select方法参数
下面是关于change和clear方法参数的整理表格:
参数 | 数据类型 | 默认值 | 描述 |
---|---|---|---|
fn | Callable or None | 无 | 封装为接口的函数。通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,函数应返回单个值或一个元组,其中每个元素对应一个输出组件。 |
inputs | Component, list[Component], set[Component] or None | 无 | 用作输入的Gradio组件的列表。如果函数不需要输入,应将其设置为空列表。 |
outputs | Component, list[Component] or None | 无 | 用作输出的Gradio组件的列表。如果函数不返回输出,应将其设置为空列表。 |
api_name | str, None or Literal[False] | None | 定义端点在API文档中的显示方式。可以是字符串、None或False。如果为False,则端点不会显示在API文档中。如果设置为None,则端点将以无名称的端点显示在API文档中,尽管此行为将在Gradio 4.0中更改。如果设置为字符串,则端点将以给定名称显示在API文档中。 |
status_tracker | None | 无 | 无 |
scroll_to_output | bool | False | 如果为True,在完成时将滚动到输出组件。 |
show_progress | Literal[‘full’, ‘minimal’, ‘hidden’] | “full” | 如果为True,在等待期间显示进度动画。 |
queue | bool or None | None | 如果为True,将请求放入队列中(如果队列已启用)。如果为False,即使启用了队列,也不会将此事件放入队列。如果为None,则使用gradio应用程序的队列设置。 |
batch | bool | False | 如果为True,则函数应处理一批输入,这意味着它应接受每个参数的输入值列表。列表应具有相等的长度(最多为max_batch_size 的长度)。然后,函数必须返回一个元组列表(即使只有一个输出组件),其中元组中的每个列表对应一个输出组件。 |
max_batch_size | int | 4 | 如果从队列中调用此方法,则最多将输入批处理到一起的最大数量(仅适用于batch=True)。 |
preprocess | bool | True | 如果为False,则在运行’fn’之前不会对组件数据进行预处理(例如,如果使用Image 组件调用此方法,将其保留为base64字符串)。 |
postprocess | bool | True | 如果为False,则在将’fn’输出返回给浏览器之前不会对组件数据进行后处理。 |
cancels | dict[str, Any], list[dict[str, Any]] or None | None | 要在此监听器触发时取消的其他事件列表。例如,设置cancels=[click_event]将取消click_event,其中click_event是另一个组件的.click方法的返回值。尚未运行的函数(或正在迭代的生成器)将被取消,但正在运行的函数将被允许完成。 |
every | float or None | None | 在客户端连接打开时,每隔’every’秒运行此事件。以秒为单位解释。队列必须启用。 |
本文介绍了Gradio库的ScatterPlot模块及其change和clear方法。通过使用这些功能强大的工具,我们可以轻松创建出交互式的散点图,并根据用户的操作进行相应的数据处理和展示。使用Gradio库,数据可视化变得简单而又有趣。