赞
踩
目录
为了进一步使用streamlit进行安全开发,通过对streamlit的中文文档进行学习,通过博文对自己学习和过程中的笔记以及遇到的问题进行记录,本篇是对上篇的续篇,是完整篇
在进行学习之前,因之前常用PyCharm进行python的编写,但是编写此类web应用的时候感觉过于繁琐与不便,因此就用vscode来做替代吧
下面是文档中的一些实例,可以快速帮助我们熟悉Streamlit应用的一些基本语法和处理,当然基本上还是一写第三方库的使用,熟悉的话学起来就很简单了
在Streamlit应用中,有几种展示数据(如表格、数组、数据帧)的方法。下面将介绍魔法命令(magic)和st.write()
,它们可以用来书写从文本到表格的任何内容。之后,我们将探讨专为数据可视化设计的方法。
你也可以不调用任何Streamlit方法来向应用写入内容。Streamlit支持所谓的“魔法命令”,这意味着你不必使用st.write()
。下面的代码段展示了这一点:
下面就是使用了pandas库,进行了创建了表格,其中按照json格式或是叫python中的字典格式也行
- """
- # 我的第一个应用
- 这是我们首次尝试使用数据创建表格:
- """
-
- import streamlit as st # type: ignore #
- import pandas as pd # type: ignore
- df = pd.DataFrame({
- '第一列': [1, 2, 3, 4],
- '第二列': [10, 20, 30, 40]
- })
-
- df
每当Streamlit看到一个变量或字面值独立成行时,它就会自动使用st.write()
将内容写入你的应用。想了解更多,请参考magic命令的文档。
除了魔法命令,st.write()
是Streamlit的“瑞士军刀”。几乎任何内容都可以传递给st.write()
:文本、数据、Matplotlib图形、Altair图表等等。放心,Streamlit会识别并正确渲染这些内容。
代码基本和上面一致,但是是通过st.write()进行写入到web页面的
- import streamlit as st
- import pandas as pd
-
- st.write("这是我们首次尝试使用数据创建表格:")
- st.write(pd.DataFrame({
- '第一列': [1, 2, 3, 4],
- '第二列': [10, 20, 30, 40]
- }))
st.write()
?有几个原因:
st.write()
会检查你传递的数据类型,然后决定如何最好地在应用中呈现它。有时你可能想要用另一种方式展示。例如,与其将数据框作为交互式表格绘制,你可能希望通过使用 st.table(df)
将其绘制为静态表格。 创建一个数据框并使用Pandas的Styler
对象改变其格式。在这个例子中,使用Numpy第三方库生成随机样本,并使用st.dataframe()
方法绘制一个交互式表格。
其中 np.random.randn(10, 20)
生成了一个包含 10 行和 20 列的二维数组,数组中的数值来自标准正态分布(均值为 0,标准差为 1)。
- import streamlit as st # type: ignore #
- import numpy as np # type: ignore #
-
- dataframe = np.random.randn(10, 20)
- st.dataframe(dataframe)
让我们基于第一个例子进一步操作,使用Pandas的Styler
对象来突出显示交互式表格中的某些元素。
其中数据的创建还是使用numpy库的方法进行创建.其中通过columns=('列%d' % i for i in range(20))
设置数据框的列名为“列0”到“列19”。 看不懂的话,其中for循环使用的列表推导式,之前我有写过列表推导式的使用,感兴趣的话可以看看,然后就是使用了占位符将列表推导式,也就是每次循环的数据,在每一列进行展示.
其中dataframe.style.highlight_max(axis=0)
是Pandas的一个方法链,用于给数据框添加样式。这里highlight_max
函数用于突出显示每一列中的最大值。参数axis=0
指定了函数是沿着列的方向(垂直方向)查找最大值。
- import streamlit as st
- import numpy as np
- import pandas as pd
-
- dataframe = pd.DataFrame(
- np.random.randn(10, 20),
- columns=('列%d' % i for i in range(20)))
-
- st.dataframe(dataframe.style.highlight_max(axis=0))
Streamlit还提供了一个生成静态表格的方法:st.table()
。
- import streamlit as st # type: ignore #
- import numpy as np # type: ignore #
- import pandas as pd # type: ignore #
-
- dataframe = pd.DataFrame(
- np.random.randn(10, 20),
- columns=('列%d' % i for i in range(20)))
- st.table(dataframe)
Streamlit支持多种流行的数据图表库,如Matplotlib、Altair、deck.gl等Matplotlib、Altair、deck.gl等Matplotlib、Altair、deck.gl等。
你可以使用st.line_chart()
轻松地向应用中添加折线图。我们将使用Numpy生成随机样本,然后绘制图表。
- import streamlit as st # type: ignore #
- import numpy as np # type: ignore #
- import pandas as pd # type: ignore #
-
- chart_data = pd.DataFrame(
- np.random.randn(20, 3),
- columns=['A', 'B', 'C'])
-
- st.line_chart(chart_data)
唯一要说的就是,这里是将创建的20行三列的数据转换为A,B,C三条折线了
通过st.map()
,你可以在地图上显示数据点。让我们使用Numpy生成一些样本数据,并在旧金山的地图上绘制它。
这里因为文档中给出代码出现错误,因此我做了一些修改,让其更为逼真一点,用真实数据模拟
- import streamlit as st
- import numpy as np
- import pandas as pd
-
- # 使用均匀分布生成随机数,集中在旧金山附近
- map_data = pd.DataFrame(
- np.random.uniform([-122.4, 37.76], [122.7, 37.4], [1000, 2]), # 旧金山附近的经纬度范围
- columns=['LONGITUDE', 'LATITUDE']) # 使用Streamlit认可的列名
-
- # 使用st.map函数展示地图
- st.map(map_data)
当你将数据或模型调整到想要探索的状态时, 你可以添加诸如st.slider()、st.button()或st.selectbox()这样的小部件。这非常直接——将小部件视为变量处理:
其实就是上篇中的数据流中所说的,改变输入的数据流,代码会重新运行一次
- import streamlit as st
- x = st.slider('x 的值') # 声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/956448推荐阅读
相关标签
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。