Shiny 简介及其优势
有 R 使用经验的读者很可能听说过 Shiny 包,它让您能够创建交互式 Web 应用 。R Shiny 于 2012 年发布,人们很快意识到这个易用的包可以帮助科学家和分析师构建更具交互性的模型和仪表板,需求随之迅猛增长。
2023 年,Python 版 Shiny 走出 alpha 阶段,为 Python 语言带来了类似的响应式框架。Shiny 以其简单高效而闻名,无需深厚的 Web 开发技能,就能创建基于 Web 的仪表板和应用。
什么是 Shiny?
Shiny 是一个开源的 Web 应用框架,最初用于 R,近期也支持 Python。它使数据从业者能够将分析成果转化为交互式 Web 应用。Shiny 的核心理念是响应式编程:当输入(如滑块或按钮)发生变化时,会自动触发输出(如图形或表格)的更新。
使用 Shiny 框架来创建基于 Web 的应用有许多好处。Shiny 利用响应式编程,让您的应用能够对用户输入进行动态响应,带来更具吸引力与个性化的体验。Shiny 拥有易用的库与详尽的文档 ,具备基础编程知识的人即可创建交互性强、视觉效果出色的应用。对于 Python 爱好者而言,Shiny 如今为 Python 丰富的数据科学生态与 Shiny 的 Web 开发能力搭建了桥梁。
以下是几个 Shiny 框架的典型应用场景:
交互式仪表板 :Shiny 非常适合构建交互式仪表板,用户可以实时探索与可视化数据。您可以参考这些仪表板设计要点 。
数据探索 :分析师可利用 Shiny 创建应用,让用户以交互方式探索数据集,并即时调整参数与可视化。
决策支持 系统:Shiny 可用于开发决策支持系统,通过动态洞察促进数据驱动的决策制定。
教学工具 :在教育场景中,Shiny 有助于创建交互式教材与演示。
注意: 需要明白 R 版 Shiny 与 Python 版 Shiny 并不相同。尽管二者在底层概念上相似,但语法与术语并不能互换。如果您会用 R 版 Shiny,学习 Python 版 Shiny 会更轻松,但仍需了解为适配 Python 而引入的差异。
Shiny 与其他 Web 应用框架的比较
在考虑数据科学领域的 Web 应用开发时,了解 Shiny 与其他框架的对比很有帮助。
Shiny 兼具简洁与多样性。不过,与其他框架相比,Python 版还相对较新。Shiny 的设计宗旨是让掌握 Python 编码的人都能轻松开发 Web 应用。
除了易用性,它还被设计为可无缝扩展,利用缓存与选择性响应性保持其响应式框架的高效性,这使其相较部分其他 Web 设计框架更具优势。其声明式语法与响应式编程模型也让数据分析师更容易上手,无需深厚的 Web 开发功底即可创建交互式应用。
相比之下,Dash 与 Streamlit 等其他框架各有特长。Dash 采用更 Python 风格的语法,强调快速开发。Streamlit 擅长借助自动渲染进行快速原型搭建,但在输入变化时会重跑整个程序,应用规模扩大后易导致低效。Flask 与 Django 是通用 Web 框架,灵活且可控,但通常需要更多 Web 开发专长。如果您有兴趣学习,可阅读 DataCamp 的Django 教程 。
除了基于代码的 Web 开发平台,数据分析师也会使用 Tableau 与 Power BI 来创建类似的仪表板。这些是功能强大的数据可视化平台,但需要购买许可。与纯代码相比,这类程序的分析功能也更受限,复杂建模与分析多需在别处完成。您可以在 DataCamp 了解更多Power BI 信息。
选择最合适的框架时,务必考虑项目需求、语言偏好与是否需要特定功能。尽管其他框架各有所长,Shiny 以其独特的简洁与灵活性,再加上对 Python 的支持,成为想要升级数据科学项目的用户颇具吸引力的选择。
框架
关键特性
语言支持
学习曲线
使用场景
Shiny
简洁与多样兼备
R、Python
低
交互式应用与可视化
Dash
Python 风格语法
Python
中等
轻量 Web 应用的快速开发
Streamlit
自动渲染的快速原型
Python
低
数据应用的快速原型
Flask
通用 Web 框架
Python
中到高
全功能 Web 应用
Django
高级 Python Web 框架
Python
中到高
可扩展的 Web 应用与服务
Tableau/Power BI
数据可视化平台
不适用
低
商业智能可视化
搭建开发环境
Python 版 Shiny 的一大优势是提供了 Web 编辑器,您无需下载或安装任何东西就能创建应用。这个 Web 编辑器 附带多个应用与功能示例,便于您上手并试用新的 Shiny 应用。
不过,在开发的某个阶段,您很可能希望在本地设备上运行 Shiny。本节将指导您安装 Python、Shiny 及其依赖项,并进行必要的配置,帮助您顺利搭建本地环境。
安装 Python
要离线使用 Shiny,您需要在计算机上安装 Python。若尚未安装,请访问 Python 官方网站 python.org ,下载适用于您操作系统的最新版本。如果您之前已安装 Python,建议升级至最新版本,以确保 Shiny 正常运行。
运行下载的安装程序,并在安装过程中勾选“Add Python to PATH”。这将便于您在命令行中运行 Python。打开命令提示符或终端,输入 python --version 以验证是否安装成功,您应能看到版本号。出于方便,您也可以选择安装集成开发环境(IDE)。
安装 Shiny
设置好 Python 后,您即可安装 Shiny。只要是最新版本的 Python,您就可以打开命令提示符或终端,用下列命令通过 pip 安装 Python 版 Shiny 库:
pip install shiny技术支持
如果您使用的是 conda 而非 pip,请改用以下命令:
conda install - c conda- forge shiny技术支持
根据您的系统配置,Shiny 可能还需要其他依赖项。请按照Shiny 文档 中的说明安装这些依赖。
开发环境配置
现在您已安装 Python 与 Shiny,接下来还有三个主题需要处理。
IDE: 如果您使用 IDE(如VS Code ),可以选择安装一个扩展,让 Shiny 输出在 IDE 内渲染。
版本控制: 考虑使用 Git 等版本控制系统来跟踪代码变更。在项目文件夹中初始化 Git 仓库,以便更轻松地管理与协作开发 Shiny 应用。
代码结构: 组织好项目结构。为 Shiny 应用、数据集与其他资源分别创建文件夹。良好的结构有助于保持代码库整洁有序,也是任何编码项目的最佳实践 。
完成开发环境的搭建与配置后,您就可以开始用 Python 版 Shiny 构建交互式 Web 应用了。
创建一个基础的 Shiny 应用
了解 Shiny 应用的结构
一个 Shiny 应用包含两个主要部分:用户界面(UI)与服务器逻辑。
UI 定义了应用的外观以及可供用户交互的元素。用户能看到或交互的一切都属于 UI,包括滑块、按钮与图形等元素。
UI 使用以“ui.”开头的函数创建,例如 ui.input_numeric、ui.input_slider 与 ui.output_text。这些函数被包装在页面函数中,通常是 ui.page_fluid,用于描述页面的基本布局。
服务器逻辑定义了应用如何响应用户输入。它由函数组成,这些函数从 UI 获取用户输入,进行处理,并据此更新输出元素。服务器逻辑通过 server 函数创建,并包含用于处理输入与输出的响应式表达式。
在定义完 UI 与服务器逻辑后,我们将二者连接成一个完整的应用,且必须命名为“app”。
理解响应式编程模型
请参考Shiny 文档 中的这个示例。
该示例从滑块获取用户输入,用其执行计算,并将结果显示在滑块下方的文本框中。这个非常简单的示例在 VS Code 的本地主机上,用简易浏览器运行。
正如这个简单演示所示,Shiny 的“魔法”在于交互性。其交互性的引擎是响应式编程模型。在 Shiny 中,我们定义响应式表达式来构建输入与输出之间的依赖链。一旦输入发生变化,所有依赖的响应式表达式与输出都会自动更新。响应性是 Shiny 的核心。您可以在此处进一步了解 Shiny 的响应机制 。
实现这种响应性的关键要素有几种。
首先是响应式计算,或 reactive.Calc。它基于某个输入进行计算,并会在输入未变化时缓存返回值,一旦输入变更就会以新输入重新运行。这让您的应用能高效地对用户输入作出响应。响应式计算使用 @reactive.Calc 装饰器,如下例所示。
@reactive. Calc
def double_number ( ) :
return input . number( ) * 2 技术支持
另一种响应式元素是响应式效果,或 reactive.Effect。响应式效果在运行时不返回值,而是触发某种效果,例如修改变量或保存文件。它也会在输入变化时重新运行。最常见的 reactive.Effect 是 @output 装饰器,它会将包含结果的字符串加入消息队列,如下例所示。
@output
@render. text
def txt ( ) :
return f"The value of x is { input . x( ) } " 技术支持
有时,您可能不希望应用的响应如此即时。比如,如果模型计算开销很大,您或许希望在多个参数都更新后再重新运行模型。在这种情况下,reactive.event() 或 reactive.isolate() 提供了限制应用响应性的方案。
为 Shiny 应用增添交互性
当您需要更复杂的应用时
借助上述响应逻辑,Python 版 Shiny 可让应用按需简单或复杂。您可以添加单选按钮、复选框、滑块、文本输入框、图表、地图等诸多元素!下面是来自Shiny 文档 的一个稍复杂示例。
在这个示例中,我们对随机数据创建了热力图。用户可以通过单选按钮选择想看的热力图样式,滑块可以改变热力图的色带范围。创造 Shiny 的公司 Posit 在其网站上提供了更多示例,包括这个有趣的Wordle 克隆 。
这种交互很好玩,同时也有许多实用应用。您可以设计一个模型,接收盐度与温度等环境因子,并用于预测藻华。实地研究人员将当前数值输入 Shiny 应用,就能获得实时预测。
您也可以设计一个模型,在满足特定条件时展示年度收益预测。管理者可通过输入不同销售数量或勾选提供的产品选项来尝试不同情景,并即时看到预测结果如何变化。
跨越多个行业的用例数不胜数。
输入与输出的类型
Shiny 提供多种输入与输出选项,以满足不同的数据可视化与交互需求。下表简要列出了 Python 版 Shiny 中常见的输入与输出。
输入
作用
操作按钮输入
提供一个供用户点击的按钮。
操作链接输入
允许用户点击一个链接。
文本输入
提供输入单行文本的文本框。
数字输入
提供带上下箭头的数字输入框。
滑块输入
创建一个数值滑块。
复选框输入
生成单个复选框,适用于 True/False 情况。
开关输入
生成单个开/关开关。
复选框组输入
创建多个复选框以支持多选。
选择输入
提供下拉选单。
单选按钮输入
创建单选按钮,强制用户仅选一项。
文本区域输入
提供可调整大小的大文本框,用于较长文本输入。
日期输入
创建带日历的日期输入框,用户可选择日期。
日期范围输入
相当于两个配对的日期输入框,用于输入日期范围。
密码输入
创建会隐藏输入文本的文本框。
———————————————
输出
作用
文本输出
以纯 HTML 形式写出文本。
等宽文本输出
在等宽的代码块中写出文本。
UI 输出
允许基于用户输入生成更动态的 UI。
图形输出
使用常见 Python 库(如 matplotlib)生成图形。
表格输出
创建带列标题的普通表格。
数据框/网格输出
创建可自定义的表格,带筛选、网格线与行数限制。
如需查看 Shiny 组件的完整列表,请访问此页面 。
自定义 Python 版 Shiny 的用户界面
布局与主题
Shiny 通过多种页面函数 提供灵活的 UI 自定义能力。最常用的页面函数是 page_fluid(),它提供可自适应不同屏幕尺寸的响应式设计。若应用对设计有固定宽度需求,则可使用 page_fixed() 页面函数实现定宽布局。
Shiny 借助 HTML 来创建基于 Web 的应用。这意味着您可以使用CSS 主题美化应用 。添加自定义 CSS 样式可使 Shiny 应用外观契合您的审美偏好或企业品牌。Top of Form
自定义小部件与扩展的实现
Shiny 支持 ipywidgets ,可用于多种交互式图表、地图、三维可视化与媒体流。它还对部分可保存为 HTML 文件的 Python 小部件提供一定支持。通过引入自定义小部件,您可以针对特定用例定制 Shiny 应用,打造更个性化的用户体验。
部署您的 Python 版 Shiny 应用
不同部署选项说明
当您创建了一个出色的 Shiny 应用,往往会希望将其部署到 Web,与更广泛的受众分享,无论是用于作品集还是面向客户。Shiny 支持多种部署选项,以满足不同需求。
本地部署: 您可以在本地服务器上部署 Shiny 应用,使其在组织内部或面向特定用户群可用。
云平台: 云平台为部署 Shiny 应用提供可扩展且易访问的方案。常见选择包括:
ShinyLive:Shiny 提供了一种无需独立 Python 服务器即可在网页浏览器中运行 Shiny 应用的新方式。它结合 WebAssembly 与 Pyodide,使 Shiny 应用无需在您的计算机上安装 Python 或 Shiny 即可运行。该平台对可用的 Python 包有一定限制,安全性也可能不及其他平台,但对于快速分享非敏感代码而言是不错的选择。
结语
Python 版 Shiny 是 Web 应用开发领域令人期待的新成员。它能在无需大量 Web 开发学习投入的前提下,大幅提升您的数据项目。如果您也想尝试 R 版 Shiny,欢迎查看 DataCamp 的Shiny 基础课程 以及这门使用 R Shiny 构建仪表板 的课程。打好基础后,再通过一份Shiny 案例研究 来练习新技能吧!
Shiny 简介及其优势
有 R 使用经验的读者很可能听说过 Shiny 包,它让您能够创建交互式 Web 应用。R Shiny 于 2012 年发布,人们很快意识到这个易用的包可以帮助科学家和分析师构建更具交互性的模型和仪表板,需求随之迅猛增长。
2023 年,Python 版 Shiny 走出 alpha 阶段,为 Python 语言带来了类似的响应式框架。Shiny 以其简单高效而闻名,无需深厚的 Web 开发技能,就能创建基于 Web 的仪表板和应用。
什么是 Shiny?
Shiny 是一个开源的 Web 应用框架,最初用于 R,近期也支持 Python。它使数据从业者能够将分析成果转化为交互式 Web 应用。Shiny 的核心理念是响应式编程:当输入(如滑块或按钮)发生变化时,会自动触发输出(如图形或表格)的更新。
使用 Shiny 框架来创建基于 Web 的应用有许多好处。Shiny 利用响应式编程,让您的应用能够对用户输入进行动态响应,带来更具吸引力与个性化的体验。Shiny 拥有易用的库与详尽的文档,具备基础编程知识的人即可创建交互性强、视觉效果出色的应用。对于 Python 爱好者而言,Shiny 如今为 Python 丰富的数据科学生态与 Shiny 的 Web 开发能力搭建了桥梁。
以下是几个 Shiny 框架的典型应用场景:
注意:需要明白 R 版 Shiny 与 Python 版 Shiny 并不相同。尽管二者在底层概念上相似,但语法与术语并不能互换。如果您会用 R 版 Shiny,学习 Python 版 Shiny 会更轻松,但仍需了解为适配 Python 而引入的差异。
Shiny 与其他 Web 应用框架的比较
在考虑数据科学领域的 Web 应用开发时,了解 Shiny 与其他框架的对比很有帮助。
Shiny 兼具简洁与多样性。不过,与其他框架相比,Python 版还相对较新。Shiny 的设计宗旨是让掌握 Python 编码的人都能轻松开发 Web 应用。
除了易用性,它还被设计为可无缝扩展,利用缓存与选择性响应性保持其响应式框架的高效性,这使其相较部分其他 Web 设计框架更具优势。其声明式语法与响应式编程模型也让数据分析师更容易上手,无需深厚的 Web 开发功底即可创建交互式应用。
相比之下,Dash 与 Streamlit 等其他框架各有特长。Dash 采用更 Python 风格的语法,强调快速开发。Streamlit 擅长借助自动渲染进行快速原型搭建,但在输入变化时会重跑整个程序,应用规模扩大后易导致低效。Flask 与 Django 是通用 Web 框架,灵活且可控,但通常需要更多 Web 开发专长。如果您有兴趣学习,可阅读 DataCamp 的Django 教程。
除了基于代码的 Web 开发平台,数据分析师也会使用 Tableau 与 Power BI 来创建类似的仪表板。这些是功能强大的数据可视化平台,但需要购买许可。与纯代码相比,这类程序的分析功能也更受限,复杂建模与分析多需在别处完成。您可以在 DataCamp 了解更多Power BI 信息。
选择最合适的框架时,务必考虑项目需求、语言偏好与是否需要特定功能。尽管其他框架各有所长,Shiny 以其独特的简洁与灵活性,再加上对 Python 的支持,成为想要升级数据科学项目的用户颇具吸引力的选择。
框架
关键特性
语言支持
学习曲线
使用场景
Shiny
简洁与多样兼备
R、Python
低
交互式应用与可视化
Dash
Python 风格语法
Python
中等
轻量 Web 应用的快速开发
Streamlit
自动渲染的快速原型
Python
低
数据应用的快速原型
Flask
通用 Web 框架
Python
中到高
全功能 Web 应用
Django
高级 Python Web 框架
Python
中到高
可扩展的 Web 应用与服务
Tableau/Power BI
数据可视化平台
不适用
低
商业智能可视化
搭建开发环境
Python 版 Shiny 的一大优势是提供了 Web 编辑器,您无需下载或安装任何东西就能创建应用。这个 Web 编辑器附带多个应用与功能示例,便于您上手并试用新的 Shiny 应用。
不过,在开发的某个阶段,您很可能希望在本地设备上运行 Shiny。本节将指导您安装 Python、Shiny 及其依赖项,并进行必要的配置,帮助您顺利搭建本地环境。
安装 Python
要离线使用 Shiny,您需要在计算机上安装 Python。若尚未安装,请访问 Python 官方网站 python.org,下载适用于您操作系统的最新版本。如果您之前已安装 Python,建议升级至最新版本,以确保 Shiny 正常运行。
运行下载的安装程序,并在安装过程中勾选“Add Python to PATH”。这将便于您在命令行中运行 Python。打开命令提示符或终端,输入 python --version 以验证是否安装成功,您应能看到版本号。出于方便,您也可以选择安装集成开发环境(IDE)。
安装 Shiny
设置好 Python 后,您即可安装 Shiny。只要是最新版本的 Python,您就可以打开命令提示符或终端,用下列命令通过 pip 安装 Python 版 Shiny 库:
如果您使用的是 conda 而非 pip,请改用以下命令:
根据您的系统配置,Shiny 可能还需要其他依赖项。请按照Shiny 文档中的说明安装这些依赖。
开发环境配置
现在您已安装 Python 与 Shiny,接下来还有三个主题需要处理。
完成开发环境的搭建与配置后,您就可以开始用 Python 版 Shiny 构建交互式 Web 应用了。
创建一个基础的 Shiny 应用
了解 Shiny 应用的结构
一个 Shiny 应用包含两个主要部分:用户界面(UI)与服务器逻辑。
UI 定义了应用的外观以及可供用户交互的元素。用户能看到或交互的一切都属于 UI,包括滑块、按钮与图形等元素。
UI 使用以“ui.”开头的函数创建,例如 ui.input_numeric、ui.input_slider 与 ui.output_text。这些函数被包装在页面函数中,通常是 ui.page_fluid,用于描述页面的基本布局。
服务器逻辑定义了应用如何响应用户输入。它由函数组成,这些函数从 UI 获取用户输入,进行处理,并据此更新输出元素。服务器逻辑通过 server 函数创建,并包含用于处理输入与输出的响应式表达式。
在定义完 UI 与服务器逻辑后,我们将二者连接成一个完整的应用,且必须命名为“app”。
理解响应式编程模型
请参考Shiny 文档中的这个示例。
该示例从滑块获取用户输入,用其执行计算,并将结果显示在滑块下方的文本框中。这个非常简单的示例在 VS Code 的本地主机上,用简易浏览器运行。
正如这个简单演示所示,Shiny 的“魔法”在于交互性。其交互性的引擎是响应式编程模型。在 Shiny 中,我们定义响应式表达式来构建输入与输出之间的依赖链。一旦输入发生变化,所有依赖的响应式表达式与输出都会自动更新。响应性是 Shiny 的核心。您可以在此处进一步了解 Shiny 的响应机制。
实现这种响应性的关键要素有几种。
首先是响应式计算,或
reactive.Calc。它基于某个输入进行计算,并会在输入未变化时缓存返回值,一旦输入变更就会以新输入重新运行。这让您的应用能高效地对用户输入作出响应。响应式计算使用 @reactive.Calc 装饰器,如下例所示。另一种响应式元素是响应式效果,或
reactive.Effect。响应式效果在运行时不返回值,而是触发某种效果,例如修改变量或保存文件。它也会在输入变化时重新运行。最常见的 reactive.Effect 是 @output 装饰器,它会将包含结果的字符串加入消息队列,如下例所示。有时,您可能不希望应用的响应如此即时。比如,如果模型计算开销很大,您或许希望在多个参数都更新后再重新运行模型。在这种情况下,reactive.event() 或 reactive.isolate() 提供了限制应用响应性的方案。
为 Shiny 应用增添交互性
当您需要更复杂的应用时
借助上述响应逻辑,Python 版 Shiny 可让应用按需简单或复杂。您可以添加单选按钮、复选框、滑块、文本输入框、图表、地图等诸多元素!下面是来自Shiny 文档的一个稍复杂示例。
在这个示例中,我们对随机数据创建了热力图。用户可以通过单选按钮选择想看的热力图样式,滑块可以改变热力图的色带范围。创造 Shiny 的公司 Posit 在其网站上提供了更多示例,包括这个有趣的Wordle 克隆。
这种交互很好玩,同时也有许多实用应用。您可以设计一个模型,接收盐度与温度等环境因子,并用于预测藻华。实地研究人员将当前数值输入 Shiny 应用,就能获得实时预测。
您也可以设计一个模型,在满足特定条件时展示年度收益预测。管理者可通过输入不同销售数量或勾选提供的产品选项来尝试不同情景,并即时看到预测结果如何变化。
跨越多个行业的用例数不胜数。
输入与输出的类型
Shiny 提供多种输入与输出选项,以满足不同的数据可视化与交互需求。下表简要列出了 Python 版 Shiny 中常见的输入与输出。
输入
作用
操作按钮输入
提供一个供用户点击的按钮。
操作链接输入
允许用户点击一个链接。
文本输入
提供输入单行文本的文本框。
数字输入
提供带上下箭头的数字输入框。
滑块输入
创建一个数值滑块。
复选框输入
生成单个复选框,适用于 True/False 情况。
开关输入
生成单个开/关开关。
复选框组输入
创建多个复选框以支持多选。
选择输入
提供下拉选单。
单选按钮输入
创建单选按钮,强制用户仅选一项。
文本区域输入
提供可调整大小的大文本框,用于较长文本输入。
日期输入
创建带日历的日期输入框,用户可选择日期。
日期范围输入
相当于两个配对的日期输入框,用于输入日期范围。
密码输入
创建会隐藏输入文本的文本框。
———————————————
输出
作用
文本输出
以纯 HTML 形式写出文本。
等宽文本输出
在等宽的代码块中写出文本。
UI 输出
允许基于用户输入生成更动态的 UI。
图形输出
使用常见 Python 库(如 matplotlib)生成图形。
表格输出
创建带列标题的普通表格。
数据框/网格输出
创建可自定义的表格,带筛选、网格线与行数限制。
如需查看 Shiny 组件的完整列表,请访问此页面。
自定义 Python 版 Shiny 的用户界面
布局与主题
Shiny 通过多种页面函数提供灵活的 UI 自定义能力。最常用的页面函数是 page_fluid(),它提供可自适应不同屏幕尺寸的响应式设计。若应用对设计有固定宽度需求,则可使用 page_fixed() 页面函数实现定宽布局。
Shiny 借助 HTML 来创建基于 Web 的应用。这意味着您可以使用CSS 主题美化应用。添加自定义 CSS 样式可使 Shiny 应用外观契合您的审美偏好或企业品牌。Top of Form
自定义小部件与扩展的实现
Shiny 支持 ipywidgets,可用于多种交互式图表、地图、三维可视化与媒体流。它还对部分可保存为 HTML 文件的 Python 小部件提供一定支持。通过引入自定义小部件,您可以针对特定用例定制 Shiny 应用,打造更个性化的用户体验。
部署您的 Python 版 Shiny 应用
不同部署选项说明
当您创建了一个出色的 Shiny 应用,往往会希望将其部署到 Web,与更广泛的受众分享,无论是用于作品集还是面向客户。Shiny 支持多种部署选项,以满足不同需求。
本地部署:您可以在本地服务器上部署 Shiny 应用,使其在组织内部或面向特定用户群可用。
云平台:云平台为部署 Shiny 应用提供可扩展且易访问的方案。常见选择包括:
ShinyLive:Shiny 提供了一种无需独立 Python 服务器即可在网页浏览器中运行 Shiny 应用的新方式。它结合 WebAssembly 与 Pyodide,使 Shiny 应用无需在您的计算机上安装 Python 或 Shiny 即可运行。该平台对可用的 Python 包有一定限制,安全性也可能不及其他平台,但对于快速分享非敏感代码而言是不错的选择。
结语
Python 版 Shiny 是 Web 应用开发领域令人期待的新成员。它能在无需大量 Web 开发学习投入的前提下,大幅提升您的数据项目。如果您也想尝试 R 版 Shiny,欢迎查看 DataCamp 的Shiny 基础课程以及这门使用 R Shiny 构建仪表板的课程。打好基础后,再通过一份Shiny 案例研究来练习新技能吧!