试用Streamlit进行数据可视化

早就听说Streamlit是数据分析和机器学习的利器,但一直没有机会尝试。最近花了些时间试用了一下,还真的非常好用!最主要的是其设计思路非常独特:开发者只需要关注于数据及服务器端编码就可以了,那些复杂的客户端交互,响应式设计等等全部由Streamlit这个框架来搞定!这让我想起了过去曾经用过的一个框架:GWT (Google Web Toolkit),其设计思路可以说和Streamlit是完全一样啊!不同之处是GWT中没有对数据分析和机器学习的支持。

下面通过一个简单的程序来演示Streamlit是如何工作的。

首先需要安装streamlit及下面需要的pandas:

pip install streamlit
pip install pandas

接下来写一个对下载数据可视化的程序:

import streamlit as st
import pandas as pd 

st.write("""
## Download statistics

### Line chart

""")

# select DATE_FORMAT(date, '%Y-%m-%d') as d, count(id) as count from posts group by d;

dictionary = {'2020-06-25':34, '2020-06-26': 39, '2020-06-27': 40, '2020-06-28': 40, '2020-06-29': 42, '2020-06-30': 36}

series = pd.Series(dictionary)

st.line_chart(series)

st.write("""

### Bar chart

""")

st.bar_chart(series)

在上面程序中,演示了Streamlit的几个特点:

对Markdown的支持:在st.write中,可以直接使用markdown的语法。
客户端统计图形的生成: 可以看到,这里只需要调用line_chart和bar_chart方法,而无需担心如何将数据传送到客户端,客户端又是如何渲染这些统计图的。

其运行后的界面如下图所示:

可以看到,Streamlit还帮我们生成了保存为PNG, SVG等功能。

评论