【Gradio】如何设置 Gradio 数据框的样式

简介

数据可视化是数据分析和机器学习的关键方面。Gradio DataFrame 组件是一种流行的方式,在网络应用程序中显示表格数据(特别是以 pandas DataFrame 对象的形式)。

本文将探讨 Gradio 的最新增强功能,这些功能允许用户整合 pandas 的样式选项,例如为 DataFrame 组件添加颜色,或设置数字的显示精度。

9b552def063318747de20c31cc8076b5.png

 让我们开始吧!

先决条件:我们将在示例中使用 gradio.Blocks 类。如果您还不熟悉它,可以先阅读 Blocks 指南。另外,请确保您使用的是 Gradio 的最新版本: pip install --upgrade gradio 。

 概览 

Gradio DataFrame 组件现在支持来自 pandas 类的 Styler 类型的值。这使我们能够重用 Styler 类的丰富现有 API 和文档,而不是自己发明一种新的样式格式。以下是一个完整示例的外观:

# 导入pandas和gradio库
import pandas as pd 
import gradio as gr# 创建一个样本数据框
df = pd.DataFrame({"A" : [14, 4, 5, 4, 1], "B" : [5, 2, 54, 3, 2], "C" : [20, 20, 7, 3, 8], "D" : [14, 3, 6, 2, 6], "E" : [23, 45, 64, 32, 23]
}) # 使用样式对数据框进行处理,高亮每列的最大值,高亮颜色为浅绿色
styler = df.style.highlight_max(color = 'lightgreen', axis = 0)# 在Gradio交互界面上展示经过样式处理的数据框
with gr.Blocks() as demo:gr.DataFrame(styler)# 启动Gradio界面
demo.launch()

Styler 类可以用来对数据框应用条件格式和样式,使它们更具视觉吸引力和可解释性。您可以突出显示某些值,应用渐变,甚至使用自定义 CSS 来样式化 DataFrame。Styler 对象应用于 DataFrame,并返回一个具有相关样式属性的新对象,然后可以直接预览,或在 Gradio 界面中动态渲染。

要了解更多关于 Styler 对象的信息,请阅读官方文档:https://pandas.pydata.org/docs/user_guide/style.html

 字体颜色 

除了突出显示单元格,您可能还想为单元格内的特定文本上色。以下是如何更改某些列的文本颜色:

# 导入pandas和gradio库
import pandas as pd 
import gradio as gr# 创建一个样本数据框
df = pd.DataFrame({"A" : [14, 4, 5, 4, 1], "B" : [5, 2, 54, 3, 2], "C" : [20, 20, 7, 3, 8], "D" : [14, 3, 6, 2, 6], "E" : [23, 45, 64, 32, 23]
}) # 写一个函数来修改文本颜色
def highlight_cols(x): # 首先复制输入的数据框df = x.copy() # 将所有元素的颜色设为紫色df.loc[:, :] = 'color: purple'# 将'B', 'C', 'E'列的元素颜色设为绿色df[['B', 'C', 'E']] = 'color: green'# 返回被修改颜色的数据框return df # 应用上述颜色修改函数
s = df.style.apply(highlight_cols, axis = None)# 在Gradio交互界面上展示上述处理过的数据框
with gr.Blocks() as demo:gr.DataFrame(s)# 启动Gradio界面
demo.launch()

这段代码使用Gradio UI创建了一个可交互界面,将一个处理过的Pandas DataFrame展示出来。这个处理过的DataFrame改变了列'B', 'C', 'E'的文本颜色,对于数据分析和展示来说,这种突出显示关键列的方式可以帮助分析者更好地关注和理解数据。

在这个脚本中,我们定义了一个自定义函数 highlight_cols,它将所有单元格的文本颜色更改为紫色,但对 B、C 和 E 列使用绿色进行了覆盖。它看起来是这样的:

b69c358e25046010a1f3ca7af7a9828b.png

 显示精度 

有时候,你处理的数据可能会有很长的浮点数,你可能只想显示固定数量的小数位数以简化显示。pandas 的 Styler 对象允许你格式化显示的数字精度。以下是如何做到这一点的方法:

# 导入pandas和gradio库
import pandas as pd
import gradio as gr# 创建一个包含浮点数的样本数据框
df = pd.DataFrame({"A" : [14.12345, 4.23456, 5.34567, 4.45678, 1.56789], "B" : [5.67891, 2.78912, 54.89123, 3.91234, 2.12345], # ... 其他列
}) # 将数字的精度设置为2位小数
s = df.style.format("{:.2f}")# 在Gradio交互界面中展示这个处理过的数据框
with gr.Blocks() as demo:gr.DataFrame(s)# 启动Gradio界面
demo.launch()

在这个脚本中,Styler 对象的 format 方法被用来将数字的精度设置为两位小数。现在看起来清爽多了:

af2910c4b51ecb57e1573c562cdcd2fa.png

关于交互性的注意事项 

需要记住的一点是,gradio DataFrame 组件在非交互式(即“静态”模式)时只接受 Styler 对象。如果 DataFrame 组件是交互式的,那么样式信息将被忽略,相反会显示原始表格值。

DataFrame 组件默认是非交互式的,除非它被用作事件的输入。在这种情况下,您可以通过设置 interactive 属性来强制组件为非交互式,如下所示:

c = gr.DataFrame(styler, interactive=False)

 结论 🎉 

这只是使用 gradio.DataFrame 组件与 Styler 类来自 pandas 的可能性的一点体验。尝试一下,告诉我们你的想法!

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

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

相关文章

Linux下静态IP地址的配置

Linux下一切皆文件!必然通过修改配置文件生效! 1.方法1:直接修改网卡配置文件 配置静态IP地址 [rootheima ~]# cd /etc/sysconfig/network-scripts/ [rootheima network-scripts]# ls ifcfg-ens160 [rootheima network-scripts]# cat ifcfg-ens160 TY…

Spring的启动扩展点机制详解

在Java的世界中,我们知道Spring是当下最主流的开发框架,没有之一。而在使用Dubbo、Mybatis等开源框架时,我们发现可以采用和Spring完全一样的使用方式来使用它们。 可能你在平时的使用过程中并没有意识到这一点,但仔细想一想&…

飞机大战java

"飞机大战"是一种经典的射击游戏,通常在各种平台上都有实现,包括Java。如果你想要开发一个Java版本的飞机大战游戏,你可能需要考虑以下几个方面: 游戏设计:确定游戏的基本规则,比如玩家控制的飞机…

代码随想录第四十五天打卡

198.打家劫舍 视频讲解&#xff1a;动态规划&#xff0c;偷不偷这个房间呢&#xff1f;| LeetCode&#xff1a;198.打家劫舍_哔哩哔哩_bilibili 代码随想录 class Solution { public:int rob(vector<int>& nums) {vector<vector<int>>dp(nums.size(),ve…

通用大模型VS垂直大模型

通用大模型VS垂直大模型&#xff0c;你更青睐哪一方&#xff1f; 在当前AI大模型的竞争环境中&#xff0c;通用大模型和垂直大模型各有其独特的优势和挑战&#xff0c;选择哪一方更有前景需要考虑多方面因素。 通用大模型的优势与挑战 通用大模型如GPT-3、BERT等在自然语言处理…

解决js打开新页面百度网盘显示不存在方法:啊哦,你所访问的页面不存在了。

用js打开新页面open或window.location.href打开百度网盘后都显示&#xff1a;啊哦&#xff0c;你所访问的页面不存在了。 window.open(baidu_url); window.location.href baidu_url;在浏览器上&#xff0c;回车后网盘资源是可以打开的&#xff0c;刷新也是打开的。这是很奇怪…

深入分析并可视化城市轨道数据

介绍 中国城市化进程加速中&#xff0c;城市轨道交通的迅速扩张成为提升城市运行效率和居民生活品质的关键。这一网络从少数大城市延伸至众多大中型城市&#xff0c;映射了经济飞跃和城市管理现代化。深入分析并可视化城市轨道数据&#xff0c;对于揭示网络特性、评估效率、理…

进程、线程的区别

进程、线程的关系 开工厂生产手机&#xff0c;制作一条生产线&#xff0c;这个生产线上有很多的器件以及材料。一条生产线就是一个进程。 只有生产线是不够的&#xff0c;使用找五个工人来进行生产&#xff0c;这个工人能够利用这些材料最终一步步的将手机做出来&#xff0c;这…

Ansible 自动化运维实践

随着 IT 基础设施的复杂性不断增加&#xff0c;手动运维已无法满足现代企业对高效、可靠的 IT 运维需求。Ansible 作为一款开源的自动化运维工具&#xff0c;通过简洁易用的 YAML 语法和无代理&#xff08;agentless&#xff09;架构&#xff0c;极大简化了系统配置管理、应用部…

护理实训室:为职业院校制定一个完善的护理实训室建设方案

建设一个护理实训室对于职业院校来说是非常重要的&#xff0c;因为这个实训室将直接影响学生的实践能力和未来的职业发展。在编写完整的建设计划时&#xff0c;需要考虑多个方面&#xff0c;包括实训室的设备、布局、教学方法等。以下是一个详细的护理实训室建设计划&#xff1…

LuxTrust、契约锁联合启动中欧两地跨境电子签服务

6月18日&#xff0c;欧洲领先的数字身份和电子签名厂商-LuxTrust、全球领先的数字化技术和服务的提供商-浩鲸科技一行莅临契约锁上海总部&#xff0c;并于当日下午联合举行“跨境签战略合作”现场签约仪式。 三方将以此次合作为契机&#xff0c;发挥各自领域专业优势&#xff…

SVG 参考手册

SVG 参考手册 1. 简介 SVG(可缩放矢量图形)是一种基于XML的图形格式,用于描述二维图形和图形应用程序。SVG图像在放大或缩小时不会失真,因为它们是由直线、曲线、点和多边形等数学对象定义的,而不是由像素组成的。这使得SVG非常适合网页设计、打印图形和动画。 2. 基础…

笔记-Python—redis

一、redis redis是一个key-value存储系统。和Memcached类似&#xff0c;它支持存储的value类型相对更多&#xff0c;包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash&#xff08;哈希类型&#xff09;。这些数据类型都支持push/pop、add/remov…

docker的缓存机制

docker文档 docker的缓存机制 镜像层缓存(Image Layer Cache) Docker 镜像是分层构建的,每一个 Dockerfile 指令都会生成一个新的镜像层。 Docker 会缓存每一个镜像层,当构建新的镜像时,如果检测到某个层之前已经构建过,就会直接复用该层,而不需要重新构建。 FROM ubuntu:18…

DS知识点总结--线性表定义及顺序表示

数据结构知识点汇总(考研C版) 文章目录 数据结构知识点汇总(考研C版)二、线性表2.1 线性表的定义和操作2.1.1 线性表的定义2.1.2 线性表的基本操作 2.2 线性表的顺序表示2.2.1 顺序表的定义2.2.2 顺序表上的基本操作的实现 二、线性表 2.1 线性表的定义和操作 2.1.1 线性表的…

消防设施操作员(中级)题库

31.消防水带按内口径可分为&#xff08; &#xff09;类。 A.2 B.4 C.6 D.8 答案:D 解析:消防水带按内径可分为8类&#xff0c;分别是25mm、50mm、65mm&#xff0c;、80mm、100mm、125mm、150mm、300mm。&#xff08;详见教材172页&#xff09; 32.消防水带按&#xff0…

区块链会议投稿资讯CCF A--WINE 2024 截止7.15 附录用率 附录用的区块链文章

Conference&#xff1a;The Conference on Web and Internet Economics (WINE) CCF level&#xff1a;CCF A Categories&#xff1a;Cross-cutting/comprehensive/emerging Year&#xff1a;2024 Conference time&#xff1a; December 2-5, 2024 录用率&#xff1a; sele…

MSPM0G3507——PWM

在sysconfig中&#xff0c;左侧可以选择MCU的外设&#xff0c;我们找到并点击TIMER-PWM选项卡&#xff0c;在TIMER-PWM中点击ADD&#xff0c;就可以添加定时器下的PWM外设。 这里设置通道0为100Hz的频率&#xff0c;0%占空比的PWM&#xff0c;周期计数值为1000&#xff0c;比较…

信息检索(49):Learning Passage Impacts for Inverted Indexes

Learning Passage Impacts for Inverted Indexes 摘要1 引言2 深度影响框架3 实验结果结论 发布时间&#xff08;2021&#xff09; 标题&#xff1a;倒排索引对于段落学习的影响 摘要 1&#xff09;语言模型 倒排索引 2&#xff09;改进影响分数建模和词汇不匹配问题 3&…

我理解的文本表示模型

词袋模型与N-grams模型 1 词袋模型 (Bag of Words)1.1 one-hot 取值 (Binary)1.2 Term Frequency 取值 (TF)普通频数 r a w t f raw_{tf} rawtf​频率范数归一化对数频数 1.3 Inverse document frequency (IDF)1.4 TF-IDF scores 取值 N-Gram 最简单的文本建模场景&#xff1a…