1 说明:
=====
1.1 是一个开源Python库,可轻松构建用于机器学习的漂亮应用程序。
1.2 我的第一篇文章,对其介绍、安装、初步相关使用做了详细的介绍:
《Streamlit是python的一个机器学习、数据科学、应用开发框架》
1.3 纠正末尾gif的st.slider图:是下面的。
2 数据可视化作图:
==============
2.1 Streamlit当前支持许多用于绘图的库,其中就有Plotly, Bokeh, Matplotlib, Altair和Vega图表。
2.2 plotly法:
2.2.1 代码:
import streamlit as st
st.title("数据可视化作图")
st.header("折线图")
#导入plotly并作图
import plotly.graph_objs as go
trace0 = go.Scatter(x=[1, 2, 3, 4], y=[10, 15, 13, 17])
trace1 = go.Scatter(x=[1, 2, 3, 4], y=[16, 5, 11, 9])
data = [trace0, trace1]
#写入数据并显示图
st.write(data) #用st.write
2.2.2 效果图:
2.2.3 代码:3D
import streamlit as st
import plotly.graph_objs as go
import numpy as np
#显示标题
st.header("3D plot")
#随机生成散点坐标轴
x, y, z = np.random.multivariate_normal(np.array([0, 0, 0]), np.eye(3), 400).transpose()
trace1 = go.Scatter3d(
x=x,
y=y,
z=z,
mode="markers",
marker=dict(
size=12,
color=z, # set color to an array/list of desired values
colorscale="Viridis", # choose a colorscale
opacity=0.8,
),
)
data = [trace1]
layout = go.Layout(margin=dict(l=0, r=0, b=0, t=0))
fig = go.Figure(data=data, layout=layout)
st.write(fig)
#streamlit run 6-plotly-3D.py
2.2.4 操作效果图:
2.3 matplotlib法
2.3.1 代码:
import streamlit as st
st.title("数据可视化作图")
st.header("matplotlib-Scatter")
import matplotlib.pyplot as plt
f = plt.figure()
#附加学习Python的列表及列表推导式
x=[x for x in range(9)]
x1=x[1:]
#x1=[1,2,3,4,5,6,7,8] #等于上面2个
y=[3,6,2,7,4,8,5,3]
plt.scatter(x1,y)
#st.plotly_chart(f) #老版matplotlib的格式
st.write(f) #新版matplotlib
2.3.2 操作和效果图:
2.4 altair法
2.4.1 代码:
import streamlit as st
import altair as alt
from vega_datasets import data
source = data.cars()
#设置刷子,交互性
brush = alt.selection(type='interval')
points = alt.Chart().mark_point().encode(
x='Horsepower:Q', y='Miles_per_Gallon:Q',
color=alt.condition(brush, 'Origin:N', alt.value('lightgray')) ).add_selection( brush )
bars = alt.Chart().mark_bar().encode(
y='Origin:N', color='Origin:N', x='count(Origin):Q' ).transform_filter( brush )
#把点图和柱状图挂在一起
bbb=alt.vconcat(points, bars, data=source)
#一起启动服务器
#bbb.serve('0.0.0.0', 8888) #用altair启动服务器自动浏览器打开
st.write(bbb) #streamlit run 7-altair.py #用终端启动文件,没有上面有优势
2.4.2 操作效果图:
3 st.file_uploader和st.button
======================
3.1 代码:
import streamlit as st
import pandas as pd
uploaded_file = st.file_uploader("Choose a CSV file", type="csv")
if uploaded_file is not None:
data = pd.read_csv(uploaded_file)
if st.button('Say hello'):
st.write('Why hello there')
else:
st.write('Goodbye')
3.2 图