大家好,我是木木。今天给大家分享一个神奇的Python库,Shiny。
Shiny是一个用于构建交互式Web应用程序的Python库。
通过简单的Python脚本,用户可以创建具有丰富交互性的仪表板和报表,而无需深入了解Web技术如HTML、CSS或JavaScript。

特点概述
-
易于使用: -
Shiny的设计初衷是让用户无需前端知识即可构建Web应用,其提供的各种小部件和布局控制手段极大简化了开发过程。 -
高度可定制: -
尽管易于上手,但Shiny也提供了丰富的定制选项,允许开发者根据需求调整应用的外观和功能,包括主题、布局和小部件样式。 -
强大的反馈机制: -
Shiny应用能够实时反馈用户的交互操作,如滑块调整、选项选择等,这让数据的探索和展示变得更加直观和动态。
最佳实践
安装方法:
pip install shiny
确保你的Python环境已经安装了pip工具。
基础功能实践:
-
创建一个基本的Shiny应用
Shiny使得创建Web应用变得简单直接。你只需要定义应用的UI(用户界面)和服务器逻辑即可。下面是一个简单的示例代码:
from shiny.express import input, render, ui
from shinywidgets import render_plotly
ui.page_opts(title="Penguins dashboard", fillable=True)
with ui.sidebar():
ui.input_selectize(
"var", "Select variable",
["bill_length_mm", "bill_depth_mm", "flipper_length_mm", "body_mass_g", "year"]
)
ui.input_numeric("bins", "Number of bins", 30)
with ui.card(full_screen=True):
@render_plotly
def hist():
import plotly.express as px
from palmerpenguins import load_penguins
return px.histogram(load_penguins(), x=input.var(), nbins=input.bins())

-
响应用户输入
利用Shiny的响应式编程模型,你可以很容易地构建出响应用户输入的应用。以下是一个简单的示例,展示了如何根据动态创建,也可以通过用户的输入动态更新文本内容:
from shiny.express import input, render, ui
ui.input_slider("val", "Slider label", min=0, max=100, value=50)
@render.text
def slider_val():
return f"Slider value: {input.val()}"

高级功能示例:
实现数据动态可视化
Shiny不仅仅是制作简单Web应用的工具,下面的应用程序允许用户上传一个 csv 文件,然后用它来呈现一个表:
import pandas as pd
from shiny import reactive, req
from shiny.express import input, render, ui
ui.input_file("file", "Upload a csv file", accept=".csv")
@reactive.calc
def df():
# req() stops execution until input.file() is truthy
f = req(input.file())
return pd.read_csv(f[0]['datapath'])
@render.data_frame
def table():
# Output won't render until input.file() is truthy
return render.DataGrid(df())

这段代码创建了一个Shiny应用,它会在用户访问时上传一个表格,提供了动态更新的视图。
小总结:
Shiny 库提供了一种简单而强大的方式,让Python开发者能够快速构建和部署交互式Web应用。无论是想要分享数据分析结果、构建数据控制面板还是创建动态可视化项目,Shiny 都能成为你强有力的助手。
原文始发于微信公众号(木木夕咦):Shiny,一个高级的python库
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/241180.html