如何使用Streamlit快速创建仪表盘?
上文有快速带大家了解
streamlit,因为工作需要,这两天尝试构建了仪表盘,也就是咱们常说的Dashboard,本篇文章将教你如何使用 Streamlit 快速创建一个简单的仪表盘。
前言
Streamlit 可以帮助你轻松创建自定义的数据可视化、互动图表和表格,还能让你通过网络浏览器与他人共享你的作品。它提供了一种简单直观的方法来构建你的网络应用,无需使用 HTML、CSS 或 JavaScript。 在正式开始之前,请确保你已经正确安装了streamlit。
shell pip install streamlit
在接下来的示例中,我们将创建一个仅包含2个图表和一些用于更改这些图表的小部件的简单仪表板。我认为通过下面的例子非常适合初次接触Streamlit并且希望使用它创建仪表板的人。
创建仪表盘
首先我们先看看实现后的效果吧!


在下面,我们为您提供了仪表板的代码。
```python import streamlit as st
import pandas as pd
import pandasbokeh
from sklearn.datasets import loadwine
st.setpageconfig(layout="wide") ## Set layout wide to cover whole page.
Load Data
@st.cachedata
def loaddata():
wine = loadwine()
winedf = pd.DataFrame(wine.data, columns=wine.featurenames)
winedf["WineType"] = [wine.targetnames[t] for t in wine.target]
return winedf
winedf = loaddata()
ingredients = wine_df.drop(columns=["WineType"]).columns
avgwinedf = winedf.groupby("WineType").mean().resetindex()
Title
st.title("Wine Dataset :green[Analysis] :tea: :coffee: :chart: :barchart:")
st.markdown(
"Wine Analysis dashboard let us explore relationship between various ingredients used in creation of 3 different types of wine (*Class0, Class1, & Class2*)")
Add Widgets
st.sidebar.markdown("### Scatter Chart: Explore Relationship Between Ingredients :")
xaxis = st.sidebar.selectbox("X-Axis", ingredients, )
yaxis = st.sidebar.selectbox("Y-Axis", ingredients, index=1)
color_encode = st.sidebar.checkbox(label="Color-Encode by WineType")
st.sidebar.markdown("### Bar Chart: Average Ingredients Per Wine Type : ")
barmultiselect = st.sidebar.multiselect(label="Bar Chart Ingredients", options=ingredients,
default=["alcohol", "malicacid", "ash"])
Widgets State Change Actions & Layout Adjustments.
container = st.container()
chart1, chart2 = container.columns(2)
with chart1:
if xaxis and yaxis:
scatterfig = winedf.plotbokeh.scatter(x=xaxis, y=yaxis, category="WineType" if colorencode else None,
xlabel=xaxis.capitalize(), ylabel=yaxis.capitalize(),
title="{} vs {}".format(xaxis.capitalize(), yaxis.capitalize()),
figsize=(650, 500),
fontsizetitle=25, fontsizelabel=12, showfigure=False)
st.bokehchart(scatterfig, usecontainer_width=True)
with chart2:
if barmultiselect:
st.header("Avg Ingredients")
st.barchart(avgwinedf, x="WineType", y=barmultiselect, height=500, usecontainer_width=True)
```
代码首先使用 setpageconfig() 函数将页面布局设置为 "wide"。
接着,它使用 'sklearn.datasets' 模块中的 loadwine() 函数加载葡萄酒数据集,并将其转换为 Pandas DataFrame。然后,使用 "@st.cachedata" 装饰器缓存数据,这样可以在应用程序的后续运行中更快地加载数据。
接下来,代码创建了一个带有小部件的侧边栏,用户可以通过这些小部件选择散点图的 x 和 y 轴,以及是否通过葡萄酒类型对点进行颜色编码。它还包括一个多选小部件,用于选择在每种葡萄酒类型的平均成分值的柱状图中包含哪些成分。
仪表板的主体部分使用 streamlit.container 模块中的 columns() 函数分为两列。
在左列中,使用 pandasbokeh 模块中的 plotbokeh.scatter() 函数显示散点图,该函数生成一个交互式散点图。图表基于用户选择的 x 和 y 轴,如果选择了颜色编码,可以通过葡萄酒类型对点进行颜色编码。
右列显示了每种葡萄酒类型的平均成分值的柱状图,这是根据用户选择要包含哪些成分而生成的。
最后,代码使用 Streamlit 库中的 st.bokehchart() 和 st.barchart() 函数分别在左列和右列中显示图表。streamlit 方法 st.barchart() 使用数据可视化库 Altair 创建图表。usecontainer_width=True 参数确保图表填充其各自列中的可用空间。
如何使用Streamlit快速创建仪表盘?的更多相关文章
- (视频) 《快速创建网站》 2.3 WordPress初始化和功能简介
本文是<快速创建网站>系列的第4篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文. 访问本系列目录,请点击:http://devopshub.cn/tag ...
- 一分钟在云端快速创建MySQL数据库实例
本教程将帮助您了解如何使用Azure管理门户迅速创建,连接,配置MySQL 数据库 on Azure.完成本教程后,您将在Azure上拥有一个示例MySQL数据库服务器,并了解如何使用管理门户执行基本 ...
- 快速创建 IEqualityComparer 实例:改进
两年前,我写了篇文章<快速创建 IEqualityComparer<T> 和 IComparer<T> 的实例>,文中给出了一个用于快速创建 IEqualityCo ...
- Hyper-v之利用差异磁盘快速创建多个虚拟机
在新建Hyper-v磁盘的时候 有3种选项 其中分别是 固定大小 动态扩展 和 差异(differencing,个人习惯叫 差分) 其中 固定大小是新建的时候 Hyper-v创建一个设置大小值的文件, ...
- Bounce.js – 快速创建漂亮的 CSS3 动画效果
Bounce.js 是一个用于制作漂亮的 CSS3 关键帧动画的 JavaScript 库,使用其特有的方式生成的动画效果.只需添加一个组件,选择预设,然后你就可以得到一个短网址或者导出为 CSS 代 ...
- (视频)《快速创建网站》 4.2 完结篇 – 应用运营vs.发射卫星,遥测(Telemetry) 技术
本文是<快速创建网站>系列的第10篇(完结篇),如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文.访问本系列目录,请点击:http://devopshub.c ...
- (视频)《快速创建网站》 4.1 为啥造软件不同于造汽车,为啥是软件就一定会有Bug - 构建开发运维一体化(DevOps)
本文是<快速创建网站>系列的第9篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文. 访问本系列目录,请点击:http://devopshub.cn/tag ...
- (视频) 《快速创建网站》3.4 网站改版3分钟搞定 - WordPress主题安装和备份
本文是<快速创建网站>系列的第8篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文. 访问本系列目录,请点击:http://devopshub.cn/tag ...
- (视频)《快速创建网站》 3.3 国际化高大上 - WordPress多语言支持
本文是<快速创建网站>系列的第7篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文. 访问本系列目录,请点击:http://devopshub.cn/tag ...
- (视频) 《快速创建网站》 3.2 WordPress多站点及Azure在线代码编辑器 - 扔掉你的ftp工具吧,修改代码全部云端搞定
本文是<快速创建网站>系列的第6篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文. 访问本系列目录,请点击:http://devopshub.cn/tag ...
随机推荐
- CompletableFuture 超时功能有大坑!使用不当直接生产事故!
CompletableFuture 超时功能有大坑!使用不当直接生产事故! 本文未经允许禁止转载! 上一篇文章<如何实现超时功能(以CompletableFuture为例)>中我们讨论了 ...
- 第一!天翼云荣获国际人工智能顶会AAAI 2024大模型数学理解&推理竞赛冠军!
近日,AAAI 2024 Global Competition on Math Problem Solving and Reasoning大赛落下帷幕,天翼云智能边缘事业部AI团队凭借在大模型基础能力 ...
- MySQL主从复制-原理实战
一.原理 主从复制架构图:主从复制原理: Mysql 中有一种日志叫做 bin 日志(二进制日志).这个日志会记录下所有修改了数据库的SQL 语句(insert,update,delete,creat ...
- linux mint安装触控板手势fusuma
安装必要的包,终端输入: sudo apt-get install libinput-tools sudo apt-get install xdotool sudo gem install fusum ...
- Luogu P8710 [蓝桥杯 2020 省 AB1] 网络分析 题解 [ 绿 ] [ 带权并查集 ]
原题 分析 本题由于从一个节点发信息,同一个集合内的所有点都会收到信息,显然是一道要求维护各节点间关系的题,因此采用并查集的数据结构进行求解. 但由于维护关系的同时还要维护权值,所以采用带权并查集,它 ...
- 深入集成:使用 DeepSeek SDK for .NET 实现自然语言处理功能
快速上手:DeepSeek SDK for .NET 全面指南 简介 Ater.DeepSeek.AspNetCore 是专门为 .NET 开发者提供的 DeepSeek API SDK.它旨在简化与 ...
- Typecho 如何开启外链转内链
把博客中的外部链接转换为网站内链,据说有利于搜索引擎收录.该插件主要由 benzBrake 大佬 编写,同时支持转换文章和评论中的链接. 上传插件 下载 Master Branch Code 后上传到 ...
- layui 自动触发radio和select
layui对radio和select做了包装,正常用jquery选中后使用trigger不起作用. 那么,怎么让其自动触发呢? 对radio来说,必须在$选中后.next('.layui-form-r ...
- python excel 数据整理:如何删除重复的记录
data = frame.drop_duplicates(subset='', keep='first', inplace='') drop_duplicates用法:subset='需要去重复的列名 ...
- npm淘宝镜像证书过期
前言 使用 npm 报错: npm ERR! request to https://registry.npm.taobao.org/xxx failed, reason: certificate ha ...