博主原文链接:https://www.yourmetaverse.cn/nlp/344/
使用Gradio的BarPlot模块创建交互式柱状图
在数据可视化中,柱状图是一种常用的图表类型,用于展示不同类别的数据之间的比较和分布。Gradio是一个强大的Python库,提供了一种简单而灵活的方式来创建交互式界面,并通过其BarPlot模块实现了柱状图的可视化功能。
在本文中,我们将介绍Gradio的BarPlot模块以及它的change
和clear
方法。首先,让我们来了解一下BarPlot模块的基本用法。
BarPlot模块可以通过调用gradio.BarPlot()
来创建一个柱状图。它的主要参数包括:
value
:用于显示在柱状图中的数据,可以是一个Pandas DataFrame或可调用对象。x
:对应于X轴的列名。y
:对应于Y轴的列名。color
:确定柱状图颜色的列名,必须是离散值。vertical
:控制柱状图的显示方向,True表示垂直显示,False表示水平显示。group
:将整个图分成多个子图的列名。title
:图表的标题。tooltip
:当用户悬停在柱状图上时显示的工具提示信息。x_title
:X轴的标题。y_title
:Y轴的标题。color_legend_title
:颜色图例的标题。group_title
:子图列(或行,如果vertical=True
)的标签。color_legend_position
:颜色图例的位置。height
:图表的高度(以像素为单位)。width
:图表的宽度(以像素为单位)。y_lim
:Y轴的限制范围。caption
:图表下方显示的说明文字。interactive
:是否允许用户通过鼠标或触控板进行平移或缩放的交互操作。label
:图表左上角显示的标签。show_label
:是否显示标签。container
:是否显示容器。scale
:缩放比例。min_width
:最小宽度。every
:在客户端连接打开时以指定秒数运行此事件。visible
:是否可见。elem_id
:HTML DOM中此组件的ID。elem_classes
:HTML DOM中此组件的类。
BarPlot模块还提供了change
和clear
两种方法。
change
方法用于监听组件值的变化,无论是由用户输入引起的(例如用户在文本框中输入)还是由函数更新引起的(例如图像从事件触发的输出接收到值)。该方法适用于当此
组件位于Gradio Blocks中时使用。它的参数包括:
fn
:需要包装接口的函数,通常是机器学习模型的预测函数。inputs
:作为输入的Gradio组件列表。outputs
:作为输出的Gradio组件列表。
clear
方法用于监听用户通过点击组件的X按钮来清除组件(例如图像或音频)。该方法适用于当此组件位于Gradio Blocks中时使用。它的参数与change
方法相同。
通过使用Gradio的BarPlot模块,我们可以轻松创建交互式的柱状图,并根据用户的输入和函数的更新实时更新图表。这为数据可视化和交互式数据分析提供了便利和灵活性。
参数说明
参数 | 数据类型 | 默认值 | 描述 |
---|---|---|---|
value | pd.DataFrame | Callable | None | None | 包含要在柱状图中显示的数据的Pandas DataFrame。 |
x | str | None | None | X轴对应的列名。 |
y | str | None | None | Y轴对应的列名。 |
color | str | None | None | 确定柱状图颜色的列名,必须是离散值。 |
vertical | bool | True | 如果为True,柱状图将垂直显示。如果为False,则X轴和Y轴将交换,以水平方式显示柱状图。默认为True。 |
group | str | None | None | 将整个图分割为较小子图的列名。 |
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参数的值。 |
group_title | str | None | None | 子图列(或行,如果vertical=True)的标签。使用空字符串来省略标签。 |
color_legend_position | str | None | None | 颜色图例的位置。如果传递字符串值"none",则省略该图例。其他有效的位置值请参考:https://vega.github.io/vega/docs/legends/#orientation。 |
height | int | None | None | 图表的高度(以像素为单位)。 |
width | int | None | None | 图表的宽度(以像素为单位)。 |
y_lim | list[int] | None | None | Y轴的限制范围,指定为[y_min, y_max]的列表。 |
caption | str | None | None | 图表下方显示的说明文字。 |
interactive | bool | None | True | 用户是否可以通过鼠标或触摸板进行平移或缩放的交互操作。 |
label | str | None | None | 图表左上角显示的标签。 |
show_label | bool | True | 是否显示标签。 |
container | bool | True | 如果为True,图表将显示在容器中。 |
scale | int | None | None | 缩放级别。 |
min_width | int | 160 | 图表的最小宽度(以像素为单位)。 |
every | float | None | None | 如果value 是一个可调用对象,在客户端连接开放时每隔一段时间运行该函数。否则没有效果。队列必须启用。事件可以通过此组件的.load_event属性访问(例如取消它)。 |
visible | bool | True | 图表是否可见。 |
elem_id | str | None | None | 作为此组件在HTML DOM中的ID分配的可选字符串。可用于定位CSS样式。 |
elem_classes | list[str] | str | None | None | 作为此组件在HTML DOM中的类分配的可选字符串列表。可用于定位CSS样式。 |
change方法参数
参数 | 数据类型 | 默认值 | 描述 |
---|---|---|---|
fn | Callable | None | required | 要包装接口的函数,通常是机器学习模型的预测函数。函数的每个参数对应于一个输入组件,函数应返回一个值或值的元组,其中元组中的每个元素对应于一个输出组件。 |
inputs | Component | list[Component] | set[Component] | None | None | 用作输入的Gradio组件的列表。如果函数不接受输入,应该是一个空列表。 |
outputs | Component | list[Component] | None | None | 用作输出的Gradio组件的列表。如果函数不返回输出,应该是一个空列表。 |
api_name | str | None | None | 定义此参数将在API文档中公开该端点。 |
status_tracker | None | None | |
scroll_to_output | bool | False | 如果为True,将在完成时滚动到输出组件。 |
show_progress | Literal[‘full’] | Literal[‘minimal’] | Literal[‘hidden’] | “full” | 如果为True,在等待期间显示进度动画。 |
queue | bool | 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]] | None | None | 当此监听器被触发时,要取消的其他事件列表。例如,设置cancels=[click_event]将取消click_event,其中click_event是另一个组件的.click方法的返回值。尚未运行的函数(或正在迭代的生成器)将被取消,但当前正在运行的函数将被允许完成。 |
every | float | None | None | 在客户端连接开启时,每隔一段时间运行此事件。以秒为单位解释。队列必须启用。 |
clear方法参数 :
参数 | 数据类型 | 默认值 | 描述 |
---|---|---|---|
fn | Callable | None | required | 要包装接口的函数,通常是机器学习模型的预测函数。函数的每个参数对应于一个输入组件,函数应返回一个值或值的元组,其中元组中的每个元素对应于一个输出组件。 |
inputs | Component | list[Component] | set[Component] | None | None | 用作输入的Gradio组件的列表。如果函数不接受输入,应该是一个空列表。 |
outputs | Component | list[Component] | None | None | 用作输出的Gradio组件的列表。如果函数不返回输出,应该是一个空列表。 |
api_name | str | None | None | 定义此参数将在API文档中公开该端点。 |
status_tracker | None | None | |
scroll_to_output | bool | False | 如果为True,将在完成时滚动到输出组件。 |
show_progress | Literal[‘full’] | Literal[‘minimal’] | Literal[‘hidden’] | “full” | 如果为True,在等待期间显示进度动画。 |
queue | bool | 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]] | None | None | 当此监听器被触发时,要取消的其他事件列表。例如,设置cancels=[click_event]将取消click_event,其中click_event是另一个组件的.click方法的返回值。尚未运行的函数(或正在迭代的生成器)将被取消,但当前正在运行的函数将被允许完成。 |
every | float | None | None | 在客户端连接开启时,每隔一段时间运行此事件。以秒为单位解释。队列必须启用。 |