st.write - 通用显示方法
streamlit的write
方法属于瑞士军刀性质,根据你传入的参数不同
而有不同的显示效果。
与其他streamlit方法不同,write
方法有一些独特的性质:
- 你可以传入多个要显示的参数
- 显示效果依赖于传入的参数
- 返回值为None,因此在应用中它会占用一个不可复用的槽位
方法原型
streamlit.write(*args, **kwargs)
参数:
- *args:一个或多个要显示的对象参数,支持如下类型的调用:
- write(string) :显示输出格式化处理后的markdown内容
- write(data_frame) : 表格形式显示Pandas的DataFrame对象
- write(error):显示输出异常信息
- write(func):显示指定函数的信息
- write(module):显示指定模块的信息
- write(dict) :使用一个交互组件显示字典对象的内容
- write(obj):默认行为是显示输出str(obj)的结果
- write(mpl_fig):显示指定的Matplotlib图表
- write(altair):显示指定的Altair图表
- write(keras):显示指定的Keras模型
- write(graphviz):显示指定的Graphviz图表
- write(plotly_fig):显示指定的Plotly图表
- write(bokeh_fig) :显示指定的Bokeh图表
- unsafe_allow_html :是否允许不安全的HTML标签,布尔类型,默认值:false
示例代码
下面的代码显示解析后的Markdown文本,虽然传入的是字符串:
>>> write('Hello, *World!*')
效果如下:
write
方法也支持其他数据格式,例如数值、Pandas数据帧、排序对象等:
>>> st.write(1234)
>>> st.write(pd.DataFrame({
... 'first column': [1, 2, 3, 4],
... 'second column': [10, 20, 30, 40],
... }))
效果如下:
你也可以传入多个参数,例如:
>>> st.write('1 + 1 = ', 2)
>>> st.write('Below is a DataFrame:', data_frame, 'Above is a dataframe.')
效果如下:
write
命令也可以传入图表对象!例如:
>>> import pandas as pd
>>> import numpy as np
>>> import altair as alt
>>>
>>> df = pd.DataFrame(
... np.random.randn(200, 3),
... columns=['a', 'b', 'c'])
...
>>> c = alt.Chart(df).mark_circle().encode(
... x='a', y='b', size='c', color='c')
>>>
>>> st.write(c)
效果如下: