博主原文鏈接:https://www.yourmetaverse.cn/nlp/439/
使用Gradio庫進(jìn)行交互式數(shù)據(jù)可視化:Timeseries模塊介紹
在數(shù)據(jù)分析和機(jī)器學(xué)習(xí)任務(wù)中,對(duì)時(shí)間序列數(shù)據(jù)進(jìn)行可視化是一項(xiàng)常見且重要的任務(wù)。Gradio是一個(gè)功能強(qiáng)大的Python庫,可以幫助我們快速構(gòu)建交互式界面,并且它還提供了一個(gè)特殊的模塊,即Timeseries模塊,用于處理時(shí)間序列數(shù)據(jù)的可視化。
Gradio的Timeseries模塊允許用戶上傳和預(yù)覽時(shí)間序列的CSV文件,或者以圖形方式顯示由時(shí)間序列組成的DataFrame。通過這個(gè)模塊,用戶可以通過拖放文件或上傳文件來加載時(shí)間序列數(shù)據(jù),并以圖形形式展示數(shù)據(jù)。
該模塊的初始化參數(shù)包括:
- value:用于指定時(shí)間序列CSV文件的路徑,可以是字符串或可調(diào)用對(duì)象。如果是可調(diào)用對(duì)象,該函數(shù)將在應(yīng)用程序加載時(shí)調(diào)用,以設(shè)置組件的初始值。
- x:x軸(時(shí)間)序列的列名,如果CSV文件沒有標(biāo)題,則為None。
- y:y軸序列的列名,如果有多個(gè)序列,則可以是列名的列表。如果CSV文件沒有標(biāo)題,則為None。
- colors:用于每條線圖的顏色列表。
- label:組件在界面中的名稱。
- every:如果
value
是可調(diào)用對(duì)象,在客戶端連接打開時(shí)每隔指定的秒數(shù)運(yùn)行函數(shù)。如果沒有設(shè)置,則不生效。 - show_label:是否顯示組件的名稱。
- container:是否將組件放置在容器中,提供一些額外的邊框填充。
- scale:相對(duì)于相鄰組件的寬度比例。例如,如果組件A的scale為2,組件B的scale為1,那么A的寬度將是B的兩倍。應(yīng)為整數(shù)。
- min_width:最小像素寬度,如果屏幕空間不足以滿足該值,則換行。如果某個(gè)scale值導(dǎo)致該組件比min_width更窄,則優(yōu)先使用min_width參數(shù)。
- interactive:是否允許用戶上傳時(shí)間序列CSV文件,如果為False,則只能用于顯示時(shí)間序列數(shù)據(jù)。如果未提供,則根據(jù)組件是作為輸入還是輸出進(jìn)行推斷。
- visible:是否顯示該組件。
- elem_id:可選的字符串,用作該組件在HTML DOM中的ID,可以用于定位CSS樣式。
- elem_classes:可選的字符串列表,用作該組件在HTML DOM中的類名,可以用于定位CSS樣式。
除了初始化參數(shù)外,Timeseries模塊還提供了一個(gè)change方法,用于在組件的值發(fā)生更改時(shí)觸發(fā)事件。該方法適用于在Gradio Blocks中使用該組件的情況。
change方法的參數(shù)包括:
- fn:需要包裝為界面的函數(shù),通常是一個(gè)機(jī)器學(xué)習(xí)模型的預(yù)測(cè)函數(shù)。函數(shù)的每個(gè)參數(shù)對(duì)應(yīng)一個(gè)輸入組件,函數(shù)應(yīng)返回單個(gè)值或值的元組,元組中的每個(gè)元素對(duì)應(yīng)一個(gè)輸出組件。
- inputs:作為輸入的組件列表。
- outputs:作為輸出的組件列表。
- api_name:定義端點(diǎn)在API文檔中的顯示方式。
- status_tracker:用于跟蹤狀態(tài)的對(duì)象。
- scroll_to_output:如果為True,在完成后將滾動(dòng)到輸出組件。
- show_progress:在等待期間是否顯示進(jìn)度動(dòng)畫。
- queue:是否將請(qǐng)求放入隊(duì)列中。
- batch:如果為True,則函數(shù)應(yīng)處理一批輸入,即接受每個(gè)參數(shù)的輸入值列表。然后函數(shù)必須返回一個(gè)元組的列表(即使只有一個(gè)輸出組件),元組中的每個(gè)列表對(duì)應(yīng)一個(gè)輸出組件。
- max_batch_size:如果從隊(duì)列中調(diào)用此方法,則最大批處理輸入數(shù)量。
- preprocess:是否在運(yùn)行函數(shù)之前運(yùn)行組件數(shù)據(jù)的預(yù)處理。
- postprocess:是否在將函數(shù)輸出返回給瀏覽器之前運(yùn)行組件數(shù)據(jù)的后處理。
- cancels:需要在此事件觸發(fā)時(shí)取消的其他事件列表。
- every:在客戶端連接打開時(shí)每隔指定的秒數(shù)運(yùn)行此事件。
通過Gradio的Timeseries模塊,我們可以方便地進(jìn)行時(shí)間序列數(shù)據(jù)的交互式可視化,無論是上傳CSV文件還是直接在界面中顯示數(shù)據(jù),都能夠快速實(shí)現(xiàn)。該模塊的靈活性和易用性使得數(shù)據(jù)分析和機(jī)器學(xué)習(xí)工作變得更加高效和直觀。文章來源:http://www.zghlxwxcb.cn/news/detail-547870.html
參數(shù)詳解
下面是關(guān)于Timeseries模塊和change方法的參數(shù)整理表格:文章來源地址http://www.zghlxwxcb.cn/news/detail-547870.html
參數(shù)名 | 數(shù)據(jù)類型 | 默認(rèn)值 | 描述 |
---|---|---|---|
value | str/Callable | None | 用于指定時(shí)間序列的CSV文件路徑。如果是Callable類型,則在應(yīng)用程序加載時(shí)調(diào)用該函數(shù)以設(shè)置組件的初始值。 |
x | str | None | x(時(shí)間)序列的列名。如果CSV文件沒有標(biāo)題,則為None,此時(shí)第一列為x序列。 |
y | str/list[str] | None | y序列的列名,如果有多個(gè)序列,則為列名列表。如果CSV文件沒有標(biāo)題,則為None,此時(shí)第一列之后的每一列都是y序列。 |
colors | list[str] | None | 每個(gè)線圖使用的顏色的有序列表。 |
label | str | None | 在界面中顯示的組件名稱。 |
every | float | None | 如果value 是一個(gè)callable,將在客戶端連接打開時(shí)每隔’every’秒運(yùn)行一次該函數(shù)。否則沒有影響。隊(duì)列必須啟用??梢酝ㄟ^此組件的.load_event屬性訪問事件(例如取消它)。 |
show_label | bool | True | 如果為True,則顯示標(biāo)簽。 |
container | bool | True | 如果為True,則將組件放置在容器中,提供一些額外的邊框填充。 |
scale | int | None | 相對(duì)于相鄰組件在一行中的寬度比例。例如,如果組件A的scale=2,組件B的scale=1,則A的寬度是B的兩倍。應(yīng)為整數(shù)。 |
min_width | int | 160 | 最小像素寬度,如果屏幕空間不足以滿足此值,將換行。如果某個(gè)scale值導(dǎo)致該組件比min_width更窄,則首先遵守min_width參數(shù)。 |
interactive | bool | None | 如果為True,則允許用戶上傳時(shí)間序列的CSV文件;如果為False,則僅可用于顯示時(shí)間序列數(shù)據(jù)。如果未提供,將根據(jù)組件是用作輸入還是輸出進(jìn)行推斷。 |
visible | bool | True | 如果為False,則組件將被隱藏。 |
elem_id | str | None | 可選字符串,作為此組件在HTML DOM中的id分配。可用于定位CSS樣式。 |
elem_classes | list[str]/str | None | 可選的字符串列表,作為此組件在HTML DOM中的類分配??捎糜诙ㄎ籆SS樣式。 |
fn | Callable | None | 必需參數(shù)。當(dāng)組件的值發(fā)生更改時(shí)觸發(fā)該監(jiān)聽器,無論是因?yàn)橛脩糨斎耄ɡ缬脩粼谖谋究蛑休斎耄┻€是因?yàn)楹瘮?shù)更新(例如圖像從事件觸發(fā)的輸出中接收到值)。每個(gè)函數(shù)參數(shù)對(duì)應(yīng)一個(gè)輸入組件,函數(shù)應(yīng)返回單個(gè)值或元組,其中元組的每個(gè)元素對(duì)應(yīng)一個(gè)輸出組件。 |
inputs | Component/list[Component]/set[Component]/None | None | 要用作輸入的gradio.components的列表。如果函數(shù)不需要輸入,則應(yīng)該是一個(gè)空列表。 |
outputs | Component/list[Component]/None | None | 要用作輸出的gradio.components的列表。如果函數(shù)不返回輸出,則應(yīng)該是一個(gè)空列表。 |
api_name | str/None/Literal[False] | None | 定義端點(diǎn)在API文檔中的顯示方式??梢允亲址?、None或False。如果為False,則不會(huì)在api文檔中公開該端點(diǎn)。如果設(shè)置為None,則該端點(diǎn)將作為一個(gè)無名端點(diǎn)在api文檔中公開,盡管這種行為將在Gradio 4.0中更改。如果設(shè)置為字符串,則該端點(diǎn)將以給定的名稱在api文檔中公開。 |
status_tracker | None | None | |
scroll_to_output | bool | False | 如果為True,則在完成時(shí)將滾動(dòng)到輸出組件。 |
show_progress | Literal[‘full’, ‘minimal’, ‘hidden’] | “full” | 如果為True,則在等待時(shí)顯示進(jìn)度動(dòng)畫。 |
queue | bool/None | None | 如果為True,則將請(qǐng)求放入隊(duì)列(如果隊(duì)列已啟用)。如果為False,則即使隊(duì)列已啟用,也不會(huì)將此事件放入隊(duì)列。如果為None,則使用gradio應(yīng)用程序的隊(duì)列設(shè)置。 |
batch | bool | False | 如果為True,則函數(shù)應(yīng)處理一批輸入,這意味著它應(yīng)接受每個(gè)參數(shù)的輸入值列表。列表的長度應(yīng)相等(并且最長為max_batch_size)。然后函數(shù) 必須 返回一個(gè)元組的列表(即使只有1個(gè)輸出組件),其中元組中的每個(gè)列表對(duì)應(yīng)一個(gè)輸出組件。 |
max_batch_size | int | 4 | 如果從隊(duì)列調(diào)用此方法,則批處理在一起的最大輸入數(shù)(僅當(dāng)batch=True時(shí)才相關(guān))。 |
preprocess | bool | True | 如果為False,則在運(yùn)行’fn’之前不運(yùn)行組件數(shù)據(jù)的預(yù)處理(例如,如果使用Image 組件以base64字符串形式傳遞,將其保留為base64字符串)。 |
postprocess | bool | True | 如果為False,則在將’fn’輸出返回給瀏覽器之前不運(yùn)行組件數(shù)據(jù)的后處理。 |
cancels | dict[str, Any]/list[dict[str, Any]]/None | None | 要在此監(jiān)聽器觸發(fā)時(shí)取消的其他事件列表。例如,設(shè)置cancels=[click_event]將取消click_event,其中click_event是另一個(gè)組件的.click方法的返回值。尚未運(yùn)行的函數(shù)(或正在迭代的生成器)將被取消,但正在運(yùn)行的函數(shù)將被允許完成。 |
every | float/None | None | 在客戶端連接打開時(shí)每隔’every’秒運(yùn)行此事件。以秒為單位解釋。隊(duì)列必須啟用。 |
到了這里,關(guān)于使用Gradio庫進(jìn)行交互式數(shù)據(jù)可視化:Timeseries模塊介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!