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

04-13 阅读 0评论

一个傻瓜式构建可视化 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所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

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

              👉Python必备开发工具👈

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

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

              👉Python全套学习视频👈

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

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

              👉实战案例👈

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

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

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

              👉大厂面试真题👈

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

              [外链图片转存中…(img-uVOj5pFi-1710887369569)]


免责声明
本网站所收集的部分公开资料来源于AI生成和互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,人围观)

还没有评论,来说两句吧...

目录[+]