一个傻瓜式构建可视化 web的 Python 神器 ——streamlit

一个傻瓜式构建可视化 web的 Python 神器 -- streamlit

3.3 原生图表组件


Streamlit 原生支持多种图表:

  • st.line_chart:折线图

  • st.area_chart:面积图

  • st.bar_chart:柱状图

  • st.map:地图

下面一一展示

折线图

chart_data = pd.DataFrame(

np.random.randn(20, 3),

columns=[‘a’, ‘b’, ‘c’])

st.line_chart(chart_data)

一个傻瓜式构建可视化 web的 Python 神器 -- streamlit

面积图

chart_data = pd.DataFrame(

np.random.randn(20, 3),

columns = [‘a’, ‘b’, ‘c’])

st.area_chart(chart_data)

一个傻瓜式构建可视化 web的 Python 神器 -- streamlit

柱状图

chart_data = pd.DataFrame(

np.random.randn(50, 3),

columns = [“a”, “b”, “c”])

st.bar_chart(chart_data)

一个傻瓜式构建可视化 web的 Python 神器 -- streamlit

地图

df = pd.DataFrame(

np.random.randn(1000, 2) / [50, 50] + [37.76, -122.4],

columns=[‘lat’, ‘lon’]

)st.map(df)

一个傻瓜式构建可视化 web的 Python 神器 -- streamlit

3.4 外部图表组件


Streamlit 的一些原生图表组件,虽然做到了傻瓜式,但仅能输入数据、高度和宽度,如果你想更漂亮的图表,就像 matplotlib.pyplot、Altair、vega-lite、Plotly、Bokeh、PyDeck、Graphviz 那样,streamlit 也提供了支持:

  • st.pyplot

  • st.bokeh_chart

  • st.altair_chart

  • st.altair_chart

  • st.vega_lite_chart

  • st.plotly_chart

  • st.pydeck_chart

  • st.graphviz_chart

对于这部分,熟悉的同学自行尝试了,这里不再演示。

一个傻瓜式构建可视化 web的 Python 神器 -- streamlit

# 4. 用户操作支持

============

前面 streamlit 都只是展示文本和数据,如果仅是如此,那 streamlit 也就 just so so

对于那些不会前端,并且平时有需要写一些简单的页面的人说,能写一些交互界面才是硬需求。

庆幸的是,你平时在网页上、app 上能看到的交互组件,Streamlit 几乎都能支持。。

  • button:按钮

  • download_button:文件下载

  • file_uploader:文件上传

  • checkbox:复选框

  • radio:单选框

  • selectbox:下拉单选框

  • multiselect:下拉多选框

  • slider:滑动条

  • select_slider:选择条

  • text_input:文本输入框

  • text_area:文本展示框

  • number_input:数字输入框,支持加减按钮

  • date_input:日期选择框

  • time_input:时间选择框

  • color_picker:颜色选择器

这些内容非常多,也比较简单,一个一个举例也没必要,大家直接去看 streamlit 源码里的注释即可。

一个傻瓜式构建可视化 web的 Python 神器 -- streamlit

# 5. 多媒体组件

===========

想要在页面上播放图片、音频和视频,可以使用 streamlit 的这三个组件:

  • st.image

  • st.audio

  • st.video

一个傻瓜式构建可视化 web的 Python 神器 -- streamlit

# 6. 状态组件

==========

状态组件用来向用户展示当前程序的运行状态,包括:

  • progress:进度条,如游戏加载进度

  • spinner:等待提示

  • balloons:页面底部飘气球,表示祝贺

  • error:显示错误信息

  • warning:显示报警信息

  • info:显示常规信息

  • success:显示成功信息

  • exception:显示异常信息(代码错误栈)

效果如下:

一个傻瓜式构建可视化 web的 Python 神器 -- streamlit

# 7. 页面布局

==========

Streamlit 是自上而下渲染的,组件在页面上的排列顺序与代码的执行顺序一致。

一个精美的 web app ,只有上下单栏式的布局肯定是不够的。

实际上 streamlit 还提供了多种多样的布局:

st.sidebar:侧边栏

侧边栏可以做一些用户操作控件

一个傻瓜式构建可视化 web的 Python 神器 -- streamlit

st.columns:列容器,处在同一个 columns 内组件,按照从左至右顺序展示

st.expander:隐藏信息,点击后可展开展示详细内容,如:展示更多

st.container:包含多组件的容器

st.empty:包含单组件的容器

# 8. 流程控制系统

============

Streamlit 是自上而下逐步渲染出来的,若你的应用场景需要对渲染做一些控制,streamlit 也有提供对应的方法

  • st.stop:可以让 Streamlit 应用停止而不向下执行,如:验证码通过后,再向下运行展示后续内容。

  • st.form:表单,Streamlit 在某个组件有交互后就会重新执行页面程序,而有时候需要等一组组件都完成交互后再刷新(如:登录填用户名和密码),这时候就需要将这些组件添加到 form 中

  • st.form_submit_button:在 form 中使用,提交表单。

# 9. 缓存特性提升速度

==============

当用户在页面上做一些操作的时候,比如输入数据,都会触发整个 streamlit 应用代码的重新执行,如果其中有读取外部数据的步骤(数 GB 的数据),那这种性能损耗是非常可怕的。

但 streamlit 提供了一个缓存装饰器,当要重新执行代码渲染页面的时候,就会先去缓存里查一下,如果代码或者数据没有发生变化,就直接调用缓存的结果即可。

使用方法也简单,在需要缓存的函数加上 @st.cache 装饰器即可。

DATE_COLUMN = ‘date/time’

DATA_URL = (‘https://s3-us-west-2.amazonaws.com/’

‘streamlit-demo-data/uber-raw-data-sep14.csv.gz’)

@st.cache

def load_data(nrows):data = pd.read_csv(DATA_URL, nrows=nrows)

lowercase = lambda x: str(x).lowerdata.rename(lowercase, axis=‘columns’, inplace=True)

data[DATE_COLUMN] = pd.to_datetime(data[DATE_COLUMN])

return data

# 10. 部署上线

===========

在本地编写的 streamlit 应用,运行起来后只能在本地访问。

如果需要让别人也能访问这个应用,那你需要有一台服务器,这样才能通过公网ip进行访问

如果你需要服务器,可以点 这个链接 领个卷有优惠。

另外,还有一个选择,就是使用 Heroku (https://heroku.com)部署你的应用。

Heroku是一个支持多种编程语言的云平台即服务,你只要注册一个帐号(听说网易和 QQ 邮箱不行,我使用的 Gmail 注册的)

一个傻瓜式构建可视化 web的 Python 神器 -- streamlit

然后创建自己的 app

一个傻瓜式构建可视化 web的 Python 神器 -- streamlit

这个 App 名字好像是要全网唯一,本想取个 hello-streamlit 的,发现早有人取过了。

最后

Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

👉Python所有方向的学习路线👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

👉Python必备开发工具👈

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

👉Python全套学习视频👈

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

👉实战案例👈

学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。

因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。

👉大厂面试真题👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python爬虫全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:python)
img

n必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python爬虫全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:python)
[外链图片转存中…(img-uVOj5pFi-1710887369569)]

声明:本人自己研发 现在免费使用 有需要帮助请登陆网站:www.moduleframework.com.cn Visual Web Developer(可视化Web开发工具) 可视化Web开发工具由Visual Web Developer开发环境, WebFramework运行环境 2大部分组成, Visual Web Developer是基于Windows的一个开发工具,提供了一系列控件, 让您的模块实现只需要通过拖沓控件,指定控件的属性,事件,完全让B/S开发工作 和VB,DELPHI这样的开发工具一样,简单方便,开发出来的界面完全和C/S操作一样,如窗口化的操作, 桌面程序的界面风格等。 WebFramework是基于J2EE技术的一个运行环境,主要负责解释Visual Web Developer开发出来的程序并运行。 开发工具的运行环境(WebFramework): Visual Web Developer开发出来的程序,最终要经过WebFramework解释运行。 WebFramework内置Log4j,Hibernate,DWR,cache等开源技术。 并且实现常用部分功能,如用户登录注册,用户角色与权限,系统模块管理,资源管理,文件上传与下载等。 可以跨操作系统,跨数据库(您不再需要关心数据库的厂商是采用什么了) 支持多种浏览器显示运行结果。如IE,FireFox,Opera,Maxthon,Netcape等。 开发流程: 开发工具主界面: 主界面上半部分由菜单,基本工具栏,控件工具栏(有文本框,Label,下拉框,复选框,按钮,树等控件) 中间是窗口设计,右边由控件列表和属性,事件组成(可编写代码,代码中可以直接调用Java中编写的类)。 图片:http://www.moduleframework.com.cn/images/vwd-main-full.jpg http://www.moduleframework.com.cn/images/webfk-main.jpg 点击放大 运行效果图: Visual Web Developer设计出来的程序,通过WebFramework解释运行后的效果图。 效果图中由2个窗口组成,当点击登录窗口中的注册时,弹出注册对话框,并且弹出是采用模式对话框。
ePage是新一代的可视化1:1网页及App设计利器,与主流的VS以及eclipse是一个层面的开发工具。ePage在兼具高效的研发生产速度的同时还保证了开放性,方便将传统的JS代码移植到新的系统中。 ◆ 网页开发环境真正做到了1:1的所见即所得,目前主流的开发平台eclipse,vs,dreamweaver等都无法做到这一点。 ◆ 对代码和页面的树状统筹管理,可是轻松的实现2000+页面的超大型项目设计开发和维护。 ◆ “事务集”概念的提出,在网页设计领域首次利用JS统一了前后端代码,同时对事务集进行统筹管理,应付前后台代码衔接轻松自如。 ◆ 兼容各种型号手机及浏览器统一解决方案,从可视化开发环境到部署发布一键完成 ◆ 前后台代码统一集成化设计,前后台代码全部统一采用JavascriptV8,开发者无需使用多种编程语言进行前后台设计 ◆ 高度集成化的同时提供了开放可扩展的开发环境,代码继承性和可维护性极强 ◆ 开发神速,极大的降低了企业开发App以及互联网应用的投入 ◆ 高稳定性,即使入门级水平的程序员也可以写出高质量高稳定性的应用系统 ePage是通用页面设计工具领域的一次重大革新,比传统设计平台开发效率提高10倍以上,同时页面质量和稳定性维护性也得到了极大提高。 本下载包为绿色免费版,展开即可运行,内含: 1. ePage集成开发环境 2. eEngine网页服务器系统,包含32位及64位版本 3. 范例及美术资源 4. 一个完整的小型电商系统源代码 5. 皮肤资源 6. 日志查看器软件 7. 用户使用指南,编程参考手册等文档 ePage应用领域:网页设计,网页开发,后台设计,App设计,网站开发,网站设计,网页开发工具,可视化网页开发工具,页面设计开发工具 0.41版本更新日志 2017年8月10日: ePage:增加代码提示器的显示宽度和滚动条,完善了代码提示器js代码的帮助内容 2017年8月10日: ePage:代码自动完成功能,自动填写代码后光标不能驻留在第一个括号出现的位置 2017年8月10日: ePage:代码编辑器增加(){}[]代码部分的自动标记功能,方便程序员匹配括号 2017年8月9日: 版本升至V0.41 2017年8月9日: ePage:代码编辑器滚动过程中强制显示光标 2017年8月9日: ePage:代码提示在注释区域和字符串区域内不显示 2017年8月9日: ePage:代码编辑器backspace按键增加自动缩进功能 2017年8月9日: ePage:代码编辑器对于tab的处理,改为屏幕4格的栅格对位模式 2017年8月8日: ePage:代码编辑器增加Ctrl+Home跳到代码头部,Ctrl+End跳到代码尾部功能 2017年8月8日: ePage:修改了代码提示器显示在屏幕下方超界问题。优化了代码提示器右侧提示窗口的格式。 2017年8月8日: ePage:增加代码首字母的代码提示功能,并增强了代码自动完成的代码复杂度 2017年8月8日: ePage:优化了代码编辑器右侧垂直滚动条拖动动画 2017年8月7日: ePage:全面优化的代码编辑器的滚动效果 2017年8月7日: ePage:代码标记位置的背景颜色改浅了一些 2017年8月7日: ePage:集成界面增加3个快捷图标;全文标记当前光标位置处字符串功能增加全字匹配以及无搜索结果不标记功能。 2017年8月6日: ePage:代码编辑器增加功能:全文标记当前光标处的文字 2017年8月6日: ePage:增加ctrl+/智能代码注释和删除注释功能 2017年8月5日: ePage:ctrl+/代码注释功能 2017年8月4日: ePage:初步完成单页代码的搜索和替换功能 2017年8月2日: ePage:完成replace all功能 2017年8月2日: ePage:搜索增加全字匹配功能 2017年7月30日: ePage: codeInsight功能在前方有汉字的情况下工作不正常 2017年7月27日: eEngine:layout.heavy属性在出现浮点数的情况下系统处理异常 2017年7月27日: ePage,eEngine:增加ee.getQueryString函数 2017年7月25日: eEngine: 增加把note字段内容写入网页控件的.panel属性中 2017年7月21日: ePage:优化了代码编辑器的效率,界面更流畅 2017年7月20日: eEngine:bug某些情况下跨域访问会被禁止 2017年7月14日: ePage:增加代码签名 2017年7月13日: ePage:codeInsight功能改造完成,版本升级为V0.39 2017年7月12日: ePage:codeIns
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值