详解Python Streamlit框架,用于构建精美数据可视化web app,练习做个垃圾分类app

python库streamlit学习笔记 Streamlit学习笔记 阅读详情

今天详解一个 Python 库 Streamlit,它可以为机器学习和数据分析构建 web app。它的优势是入门容易、纯 Python 编码、开发效率高、UI精美。

上图是用 Streamlit 构建自动驾驶模型效果的 demo,左侧是模型的参数,右侧是模型的效果。通过调整左侧参数,右边的模型会实时地响应。

由此可以看出,对于交互式的数据可视化需求,完全可以考虑用 Streamlit 实现。特别是在学习、工作汇报的时候,用它的效果远好于 PPT。

因为 Streamlit 提供了很多前端交互的组件,所以也可以用它来做一些简单的web 应用。今天我们也会用它来做个垃圾分类的 web app。

之前我们用 Streamlit 做过两个app, 《植物识别app》 和 《动物识别app》 。但只是用了 Streamlit 一小部分功能。今天我们就按照 Streamlit 官网文档,对其做个详解。

1.文本组件

我使用的是 Python 3.8 环境,执行 pip install streamlit 安装。安装后执行 streamlit hello 检查是否安装成功。

先来了解下 Streamlit 最基础的文本组件。

文本组件是用来在网页展示各种类型的文本内容。Streamlit 可以展示纯文本、Markdown、标题、代码和LaTeX公式。

import streamlit as st

# markdown
st.markdown('Streamlit is **_really_ cool**.')

# 设置网页标题
st.title('This is a title')

# 展示一级标题
st.header('This is a header')

# 展示二级标题
st.subheader('This is a subheader')

# 展示代码,有高亮效果
code = '''def hello():
  print("Hello, Streamlit!")'''
st.code(code, language='python')

# 纯文本
st.text('This is some text.')

# LaTeX 公式
st.latex(r'''
  a + ar + a r^2 + a r^3 + \cdots + a r^{n-1} =
  \sum_{k=0}^{n-1} ar^k =
  a \left(\frac{1-r^{n}}{1-r}\right)
''')

上述是 Streamlit 支持的文本展示组件,代码存放 my_code.py 文件中。编码完成后,执行 streamlit run my_code.py ,streamlit 会启动 web 服务,加载指定的源文件。

启动后,可以看到命令行打印以下信息

streamlit run garbage_classifier.py

  You can now view your Streamlit app in your browser.

  Local URL: http://localhost:8501
  Network URL: http://192.168.10.141:8501

在浏览器访问 http://localhost:8501/ 即可。

当源代码被修改,无需重启服务,在页面上点击刷新按钮就可加载最新的代码,运行和调试都非常方便。

2. 数据组件

dataframe 和 table 组件可以展示表格。

import streamlit as st
import pandas as pd
import numpy as np
df = pd.DataFrame(
        np.random.randn(50, 5),
        columns=('col %d' % i for i in range(5)))

# 交互式表格
st.dataframe(df)
# 静态表格
st.table(df)

dateframe 和 table 的区别是,前者可以在表格上做交互(如:排序),后者只是静态的展示。它们支持展示的数据类型包括 pandas.DataFrame、pandas.Styler、pyarrow.Table、numpy.ndarray、Iterable、dict。

metric 组件用来展示指标的变化,数据分析中经常会用到。

st.metric(label="Temperature", value="70 °F", delta="1.2 °F")

value 参数表示当前指标值,delta 参数表示与前值的差值,向上的绿色箭头代表相比于前值,是涨的,反之向下的红箭头代表相比于前值是跌的。当然涨跌颜色可以通过 delta_color 参数来控制。

json 组件用来展示 json 类型数据

st.json({
    'foo': 'bar',
    'stuff': [
        'stuff 1',
        'stuff 2',
    ],
})

Streamlit 会将 json 数据格式化,展示地更美观,并且提供交互,可以展开、收起 json 的子节点。

3. 图表组件

Streamlit 的图表组件包含两部分,一部分是原生组件,另一部分是渲染第三方库。

原生组件只包含 4 个图表,line_chart、area_chart 、bar_chart 和 map,分别展示折线图、面积图、柱状图和地图。

chart_data = pd.DataFrame(
    np.random.randn(20, 3),
    columns=['a', 'b', 'c'])

st.line_chart(chart_data)

上述是 line_chart 的示例,其他图表的使用方法与之类似。

Streamlit 图表可设置的参数很少,除了数据源外,剩下只能设置图表的宽度和高度。

虽然 Streamlit 原生图表少,但它可以将其他 Python 可视化库的图表展示在 Streamlit 页面上。支持的可视化库包括:matplotlib.pyplot、Altair、vega-lite、Plotly、Bokeh、PyDeck、Graphviz。

以 matplotlib.pyplot 为例,使用方式如下:

import matplotlib.pyplot as plt

arr = np.random.normal(1, 1, size=100)
fig, ax = plt.subplots()
ax.hist(arr, bins=20)

st.pyplot(fig)

跟直接写 matplotlib.pyplot 一样,只不过最终展示的时候调用 st.pyplot 便可以将图表展示 Streamlit 页面上。其他 Python 库的使用方法与之类似。

输入组件

前面我们介绍的三类组件都是输出类、展示类的。对于交互式的页面来说,接受用户的输入是必不可少的。

Streamlit 提供的输入组件都是基本的,都是我们在网站、移动APP上经常看到的。包括:

  • button:按钮
  • download_button:文件下载
  • file_uploader:文件上传
  • checkbox:复选框
  • radio:单选框
  • selectbox:下拉单选框
  • multiselect:下拉多选框
  • slider:滑动条
  • select_slider:选择条
  • text_input:文本输入框
  • text_area:文本展示框
  • number_input:数字输入框,支持加减按钮
  • date_input:日期选择框
  • time_input:时间选择框
  • color_picker:颜色选择器

它们包含一些公共的参数:

  • label:组件上展示的内容(如:按钮名称)
  • key:当前页面唯一标识一个组件
  • help:鼠标放在组件上展示说明信息
  • on_click / on_change:组件发生交互(如:输入、点击)后的回调函数
  • args:回调函数的参数
  • kwargs:回调函数的参数

下面以 selectbox 来演示输入组件的用法

option = st.selectbox(
    '下拉框',
    ('选项一', '选项二', '选项三'))

st.write('选择了:', option)

selectbox 展示三个选项,并输出当前选中的项(默认选中第一个)。当我们在页面下拉选择其他选项后,整个页面代码会重新执行,但组件的选择状态 会保留在 option 中,因此,调用 st.write 后会输出选择后的选项。

st.write 也是一个输出组件,可以输出字符串、DataFrame、普通对象等各种类型数据。

其他组件的使用与之类似,组件效果图如下:

5.多媒体组件

Streamlit 定义了 image、audio 和 video 用于展示图片、音频和视频。

可以展示本地多媒体,也通过 url 展示网络多媒体。

用法跟前面的组件是一样的,后面的垃圾分类 APP 我们会用到 image 组件。

6. 状态组件

状态组件用来向用户展示当前程序的运行状态,包括:

  • progress:进度条,如游戏加载进度
  • spinner:等待提示
  • balloons:页面底部飘气球,表示祝贺
  • error:显示错误信息
  • warning:显示报警信息
  • info:显示常规信息
  • success:显示成功信息
  • exception:显示异常信息(代码错误栈)

效果如下:

7. 其他内容

到这里,Streamlit 的组件基本上就全介绍完了,组件也是 Streamlit 的主要内容。

这小节介绍一下其他比较重要的内容,包括页面布局、控制流和缓存。

页面布局。之前我们写的 Streamlit 都是按照代码执行顺序从上至下展示组件,Streamlit 提供了 5 种布局:

  • sidebar:侧边栏,如:文章开头那张图,页面左侧模型参数选择
  • columns:列容器,处在同一个 columns 内组件,按照从左至右顺序展示
  • expander:隐藏信息,点击后可展开展示详细内容,如:展示更多
  • container:包含多组件的容器
  • empty:包含单组件的容器

控制流。控制 Streamlit 应用的执行,包括

  • stop:可以让 Streamlit 应用停止而不向下执行,如:验证码通过后,再向下运行展示后续内容。
  • form:表单,Streamlit 在某个组件有交互后就会重新执行页面程序,而有时候需要等一组组件都完成交互后再刷新(如:登录填用户名和密码),这时候就需要将这些组件添加到 form 中
  • form_submit_button:在 form 中使用,提交表单。

缓存。这个比较关键,尤其是做机器学习的同学。刚刚说了, Streamlit 组件交互后页面代码会重新执行,如果程序中包含一些复杂的数据处理逻辑(如:读取外部数据、训练模型),就会导致每次交互都要重复执行相同数据处理逻辑,进而导致页面加载时间过长,影响体验。

加入缓存便可以将第一次处理的结果存到内存,当程序重新执行会从内存读,而不需要重新处理。

使用方法也简单,在需要缓存的函数加上 @st.cache 装饰器即可。前两天我们讲过 Python 装饰器 。

DATE_COLUMN = 'date/time'
DATA_URL = ('https://s3-us-west-2.amazonaws.com/'
            'streamlit-demo-data/uber-raw-data-sep14.csv.gz')

@st.cache
def load_data(nrows):
    data = pd.read_csv(DATA_URL, nrows=nrows)
    lowercase = lambda x: str(x).lower()
    data.rename(lowercase, axis='columns', inplace=True)
    data[DATE_COLUMN] = pd.to_datetime(data[DATE_COLUMN])
    return data

8. 垃圾分类

最后讲解垃圾分类APP的代码,前面介绍几大类组件在该 APP 都有涉及。

垃圾分类模型我用的是天行 API ,大家可以去 天行数据TianAPI - 开发者API数据平台 注册账号,获取 appkey,开通“图像垃圾分类” 接口即可。

接口的输入如下:

除了key外,其他 3 个参数需要用 Streamlit 组件实现,代码如下:

import base64

import requests
import streamlit as st
import pandas as pd
import numpy as np

add_selectbox = st.sidebar.selectbox(
    "图片来源",
    ("本地上传", "URL")
)

uploaded_file = None
img_url = None

if add_selectbox == '本地上传':
    uploaded_file = st.sidebar.file_uploader(label='上传图片')
else:
    img_url = st.sidebar.text_input('图片url')

cls_mode = {'严格模式': 0, '模糊模式': 1}
mode_name = st.sidebar.radio('分类模式', cls_mode)
mode = cls_mode[mode_name]

使用了 3 个输入组件,因为 img 和 imgurl 是二选一,所以我们用下拉单选框控制仅展示一个组件。

当输入图片后,我们希望在页面上将图片展示出来

# 请求结果
img_base64 = None
if uploaded_file:
    st.image(uploaded_file, caption='本地图片')

    base64_data = base64.b64encode(uploaded_file.getvalue())
    img_base64 = base64_data.decode()

if img_url:
    st.image(img_url, caption='网络图片')

使用 image 多媒体组件即可。如果是本地图片,需要将其转成 base64 编码的字符串。

最后,请求接口,获取分类结果即可

if img_base64 or img_url:
    cls_res = get_img_cls_res(img_base64, img_url, mode)
    lajitype_to_name = {0: '可回收物', 1: '有害垃圾', 2: '厨余垃圾', 3: '其他垃圾', 4: '无法识别'}

    if cls_res.status_code == 200:
        cls_df = pd.DataFrame(cls_res.json()['newslist'])
        cls_df['分类'] = cls_df.index.astype(str) + '-' + cls_df['name'] + '-' + cls_df['lajitype'].apply(lambda x: lajitype_to_name[x])
        cls_df['置信度'] = cls_df['trust']
        cls_df.set_index(["分类"], inplace=True)
        print(cls_df)
        st.bar_chart(cls_df[['置信度']])
    else:
        st.write(cls_res)

get_img_cls_res 函数是请求接口的函数

def get_img_cls_res(img_base64, img_url, mode):
    url = 'https://api.tianapi.com/txapi/imglajifenlei/index'
    headers = {
        'Content-Type': 'application/x-www-form-urlencoded'
    }
    body = {
        'key': 'APPKEY',
        'mode': mode
    }

    if img_base64:
        body["img"] = img_base64
    if img_url:
        body['imgurl'] = img_url

    response = requests.post(url, headers=headers, data=body)

    return response

根据返回的数据格式,将数据按照置信度(trust)展示成一个柱状图

详解一个Python库,用于构建精美数据可视化web app,练习做个垃圾分类app 今天详解一个 Python 库 Streamlit,它可以为机器学习和数据分析构建 web app。它的优势是入门容易、纯 Python编码、开发效率高、UI精美。 上图是用 Streamlit 构建自动驾驶模型效果的 demo,左侧是模型的参数,右侧是模型的效果。通过调整左侧参数,右边的模型会实时地响应。 由此可以看出,对于交互式的数据可视化需求,完全可以考虑用 Streamlit 实现。特别是在学习、工作汇报的时候,用它的效果远好于 PPT。 因为 Streamlit 提供了很多前端交互. 阅读详情

相关推荐

【Python】Streamlit

在数据科学和机器学习领域,从原型到生产部署一直是一个巨大的鸿沟。传统的Web开发框架如 Django、Flask 或 React,需要开发者具备前端(HTML, CSS, JavaScript)、后端(Python/Node.js)、数据库、部署等多方面的知识。这对于数据科学家和机器学习工程师来说,往往意味着巨大的学习曲线和开发负担。他们的核心竞争力在于数据分析、模型构建和算法优化,而非复杂的Web开发。正是为了解决这一痛点,Streamlit 应运而生。它的核心价值主张在于:让数据科学家和机器学习工程师能

宅男很神经 1903

streamlit (python构建web可视化框架)笔记

对数据可视化渲染,表格、地图、折线图等方法,以及一些。页面需要的组件,侧边栏,多页展示的用法。,使用命令行运行在浏览器上。创建一个python文件。,新文件夹一定取名字为。

qq_43627100的博客 8237

Streamlit部署避坑指南:从本地localhost到公网可访问的完整流程(Heroku/Streamlit Cloud)

本文详细介绍了如何将Streamlit应用从本地localhost部署到公网可访问的完整流程,重点对比了Heroku和Streamlit Cloud等主流平台的实战差异。通过提供环境配置、文件设置、部署步骤及常见错误解决方案,帮助开发者高效避坑,实现Python应用的快速公网部署。

weixin_42552637的博客 278

基于Python的Streamlit框架数据可视化

基于Python的数据可视化大屏,streamlit,pyecharts。 未经同意不得转载哦

weixin_42152949的博客 8078

python streamlit 介绍

Streamlit是一个面向机器学习和数据科学团队的开源应用程序框架。通过它可以用python代码编写前端页面,方便快捷的构建交互式应用程序。 streamlit 优缺点 streamlit优点: 不必需要web方面知识也可以开发出可用的前端页面 内置很多机器学习交互的组件,更有利于算法工程师使用 开发速度快,修改方便

金色旭光的博客 2151

【Python之Streamlit】第1章:Streamlit简介

它具有无代码界面、实时交互性、易于部署和活跃的社区等关键特性。无论是数据可视化、机器学习建模还是仪表板开发,Streamlit都为您提供了一个生产力和可访问性的平台,让您专注于应用程序的价值,而不是底层技术细节。借助Streamlit,您可以使用简单的Python代码即可创建交互式数据可视化、机器学习模型演示和可部署的仪表板。了解Streamlit的原理、优势和局限性将帮助您充分利用该框架,并创建有效的Web应用程序。有限的自定义:虽然Streamlit提供了广泛的组件,但自定义应用程序界面的灵活性有限。

PythonWeb实践 2784

如何高效部署Streamlit应用:从开发到生产的完整实战指南

Streamlit是一个强大的Python框架,能够将数据脚本快速转换为交互式Web应用。无论你是数据科学家、机器学习工程师还是Web开发者,掌握Streamlit部署技巧都能让你的数据应用快速上线。本文将提供从本地开发到云端发布的完整部署指南,帮助你构建稳定、安全、高性能的生产级Streamlit应用。🚀 ## 快速开始:Streamlit开发环境搭建 在开始部署之前,确保你的开发环境准备

gitblog_00010的博客 994

基于Python数据可视化的网易云音乐歌单分析系统设计与实现

在编程学习与课程设计中,数据分析与可视化是一项极具综合性的实践技能。从数据采集、清洗到图表呈现,每一步都考验开发者对工具链的掌握程度。Python凭借其pandas、pyecharts等丰富库,成为快速构建数据可视化应用的首选语言。通过一个贴近日常的场景——网易云音乐歌单分析,我们不仅可以练习爬虫与接口调用,还能掌握中文分词、词云生成、交互式图表绘制,并利用Flask将分析结果封装为一个可访问的Web系统。这种项目式学习既能让抽象的数据分析理论落地,又能为课程答辩提供完整的演示素材。本文以“基于Python

weixin_29056781的博客 336

PyGWalker终极部署指南:从数据分析到可视化的一站式解决方案

PyGWalker是一个革命性的Python数据可视化库,能够将pandas、polars或pyarrow数据框转化为类似Tableau的交互式可视化界面。通过简单的拖拽操作,数据分析师和开发者可以快速探索数据、创建图表,而无需编写复杂的可视化代码。本文将为你提供完整的PyGWalker部署方案,涵盖从基础安装到高级定制的全流程。 ## 1. 项目概述与核心价值 PyGWalker解决了数据科

gitblog_01074的博客 427

【NLP】语言模型的发展历程 (1)

N-gram模型是一种基于统计语言模型的文本分析算法,它用于预测文本中下一个词出现的概率,基于前面出现的n-1个词的序列。这里的n代表序列中元素的数量,因此称为N-gram。Unigram:N=1,每个单词的出现概率独立计算,不考虑上下文。Bigram:N=2,基于前一个单词预测当前单词的联合概率模型。Trigram:N=3,考虑前两个单词来预测当前单词的联合概率模型,更复杂但可能更准确。

酒酿小圆子呀~ 1667

Cadence IC 618实战:从与非门到环形振荡器的完整版图设计流程(含DRC/LVS避坑点)

本文详细介绍了使用Cadence IC 618进行从与非门到环形振荡器的完整版图设计流程,包括环境准备、基础设计规范、层次化设计、DRC/LVS验证及后仿真优化。特别提供了实战中的避坑技巧和优化建议,帮助工程师高效完成集成电路设计任务。

weixin_26886855的博客 405

AI科研工具Codex科研Skill全家桶:从环境配置到实战应用全指南

大型语言模型作为当前人工智能领域的前沿技术,通过海量数据训练获得强大的自然语言理解和生成能力。其核心原理基于Transformer架构,通过自注意力机制捕捉文本中的长距离依赖关系。在工程实践中,这类模型的价值在于能够自动化处理复杂的文本任务,显著提升工作效率。特别是在科研场景中,它们可以辅助完成从文献分析到论文撰写的全流程工作。本文聚焦的Codex科研Skill全家桶,正是基于此类模型构建的集成化工具,它通过封装科研选题、论文写作、图表生成等具体技能,为研究人员提供了一套完整的AI辅助解决方案。该工具深度集

weixin_34294649的博客 364

samba源码编译安装(版本4.13.0)

这里写目录标题前言编译安装samba下载三个包安装依赖共需要安装samba、gnutls、nettle1、进入解压后的samba目录执行:2、进入解压后的gnutls目录执行3、进入解压后的nettle目录执行3.1 卸载已存在nettle3.2 编译3.3 make3.4 安装4、进入gnutls继续编译4.1 编译4.2 make4.3 安装5、再次进入解压后的samba目录5.1 执行./configure5.2 make5.3 samba安装启动samba 前言 一般来说,安装samba最快的方式应

灵葱的博客 1万+

Python办公自动化实战:基于Excel与Word的周报一键生成系统

办公自动化是提升工作效率、减少重复性劳动的关键技术领域。其核心原理是通过脚本或程序,将手动、繁琐的操作流程转化为自动执行的指令序列,从而实现任务的批量、精准和无人值守处理。在技术价值上,自动化不仅能显著节省时间、降低人为错误率,更能将人力资源从机械劳动中解放出来,聚焦于更具创造性和战略性的工作。典型的应用场景包括数据处理、报告生成、文件格式转换和邮件通知等。本文聚焦于一个具体的工程实践案例——周报自动生成系统,它巧妙地运用了Python生态中的pandas库进行高效的数据处理与分析,特别是针对“excel多

weixin_34367257的博客 418

别再只会画方块了!Cesium 1.62 实战:用 Polygon、Ellipse 和 PolylineVolume 玩转复杂地理围栏与3D管道

本文深入探讨了Cesium 1.62在复杂地理围栏与3D管道开发中的高级应用,通过Polygon、Ellipse和PolylineVolume等API实现不规则禁飞区建模、椭圆围栏设计及地下管线可视化。文章结合实战代码,详细解析了性能优化技巧和工程实践,帮助开发者突破基础图形绘制局限,构建真实业务场景中的三维空间系统。

weixin_26763955的博客 104

【ENVI初学】查看影像空间分辨率及重采样

例如,如果线段长度为900米,对应的像素数量为30个,那么影像的空间分辨率为30米。通过计算长度与像素数量的比值,即可得到影像的空间分辨率。,在弹出的对话框中,输入重采样后输出文件的xy分辨率大小。在测量结果窗口中,可以看到该线段的长度以及角度。在影像上点击并拖动鼠标,绘制一条直线段。工具,选择要重采样的影像后点击ok。,避免了插值过程中光谱信息的改变。:最近邻插值法通过选择原始影像中。在ENVI中打开影像后右键选择。指示了每个像素的地理跨度(聚合为一个新像素,通常通过。方法一:查看影像的元数据。

weixin_41619112的博客 5569

Python:数据分析工具Streamlit

Streamlit是一个开源Python库,可以轻松创建和共享用于机器学习和数据科学的漂亮的自定义web应用程序。只需几分钟,您就可以构建和部署功能强大的数据应用程序,同时可以结合 matplotlib 做出漂亮的图表,实现数据可视化。:结合matplotlib, 请参考 -

we chat:玩转测试开发 3449

Win10平台下QT6.9.0 OpenCV 4.10.0从入门到精通

我最近开发一个视觉项目,我们从0开始记录在windows 10下 用QT6.9+OpenCV 4.10.0搞定整个项目的开发过程。以抛砖引玉,大家共同进步。

fds111111的博客 1711

Python 可视化 web 神器:websim 、streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO

Streamlit 是Python可视化 web 神器 ,是一个开箱即用的工具集,可以让开发者免于学习繁杂的前端知识,仅需几行代码就可以轻松、快速的构建一个简洁、优雅、令人惊叹的可视化 web app 应用。用于机器学习、数据可视化。当快速搭建一个 web app 的时候 Streamlit 绝对是开发神器。

freeking101的博客 2万+

扣子Coze工作流教程:采集公众号爆文,一键仿写自动发布

通过本教程,你学会了如何利用扣子(Coze)平台构建一个完整的公众号文章自动处理工作流。这个系统不仅能够大幅提升内容产出效率,还能通过AI二创保持内容新鲜度和原创性。最佳实践建议:初次使用时,建议先保存为草稿而不是直接发布,以便人工审核;从简单的工作流开始,逐步增加复杂度;定期检查工作流运行日志,优化节点配置。自动化内容创作是新媒体运营的未来趋势,掌握这项技能将使你在数字内容领域占据显著优势。

互联网架构师笔记 1232

rk3576 点亮 LCD(eDP)

RK3576 处理器集成了对 **eDP (Embedded DisplayPort)** 接口的支持,主要用于驱动嵌入式或笔记本电脑的内置屏幕。支持 **eDP 1.3 版本协议**, 最大可支持 ****4K@120Hz**。

weixin_35723192的博客 352

Python开源库 Streamlit 详细介绍

Streamlit是一个开源的Python框架,帮助数据科学家快速构建交互式Web应用,无需掌握复杂的前端技术。文章详细介绍了Streamlit的安装方法、基础应用创建过程及运行机制,并深入解析其核心功能,包括文本展示、数据可视化、交互式组件(按钮、滑块等)、文件上传及布局设计。此外,还讲解了高级特性如状态管理、主题定制和机器学习模型集成。文章还提供了多种部署选项(Streamlit社区云、Heroku等)和实际应用案例(数据分析、模型演示),最后展望了Streamlit的未来发展,强调其在数据科学领域的价

superfreeman的专栏 1万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Python 应用开发:Streamlit 布局篇(容器布局)

以并列方式插入容器。插入若干并排排列的多元素容器,并返回一个容器对象列表。要在返回的容器中添加元素,可以使用 with 符号(首选)或直接调用返回对象的方法。请参见下面的示例。列只能放置在其他列的内部,最多只能嵌套一级。

此星光明博客 6759

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

简单好用的python可视化-Streamlit

Streamlit 是一个用于构建数据科学和机器学习应用程序的开源 Python 库。它的主要目标是使数据科学家能够更轻松地创建和共享交互式应用程序,而不需要具备全栈开发的能力。Streamlit 提供了一种简单而强大的方式来创建 Web 应用程序,通过使用 Python,可以在几分钟内将代码转换为交互式应用程序。Streamlit 的主要特点是其简洁直观的 API。它提供了几个基本的命令,使用户能够轻松地添加各种交互式元素,如滑块、按钮、文本输入框等。

sinat_35773915的博客 1360

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

一个傻瓜式构建可视化 web的 Python 神器 ——streamlit

面试前要精心做好准备,简历上写的知识点和原理都需要准备好,项目上多想想难点和亮点,这是面试时能和别人不一样的地方。还有就是表现出自己的谦虚好学,以及对于未来持续进阶的规划,企业招人更偏爱稳定的人。万事开头难,但是程序员这一条路坚持几年后发展空间还是非常大的,一切重在坚持。为了帮助大家更好更高效的准备面试,特别整理了《前端工程师面试手册》电子稿文件。前端面试题汇总JavaScript性能linux前端资料汇总。

2401_84435838的博客 2898
上一篇: Python制作可视化大屏全流程 (附代码分享)
下一篇: #yyds#数据分析从零开始实战,Python、Pandas与各类数据库
Python_xiaowu
博客等级 码龄5年 3096粉丝 178原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值