IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python Streamlit 库示例 -> 正文阅读

[Python知识库]python Streamlit 库示例

# Pycharm V2021 
# 解释器 Python 3.7 D:\ProgramData\Anaconda3\python.exe
# -*- coding:utf-8
# author :RainChang 
# 2021/10/28,13:42
# 操作说明:http://cw.hubwiz.com/card/c/streamlit-manual/
# 示例来源:https://blog.csdn.net/qq_44747847/article/details/116462041?spm=1001.2101.3001.6650.5&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-5.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-5.no_search_link
# 在Terminal 运行Streamlit run  filename.py


import time

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import streamlit as st
from PIL import Image
import altair as alt

st.title("This is my first app")
st.write("hello")
st.write("Here's our first attempt at using data to create a table:")

df = pd.DataFrame({
    'first column': [5, 6, 7, 8],
    'second column': [50, 60, 70, 80]
})

st.write(pd.DataFrame({
    'first column': [1, 2, 3, 4],
    'second column': [10, 20, 30, 40]
}))
# 其中df定义的位置,并不影响最后的输出位置!
# df

# 绘制图表
# 折线图
chart_data = pd.DataFrame(
    np.random.randn(20, 3),
    columns=['a', 'b', 'c'])

st.line_chart(chart_data)

# 区域图的可视化
# “streamlit”中的“area_chart”方法显示区域图,方法原型和折线图用到的方法一致,所以这里就不做过多的赘述,例如下面的代码

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

st.area_chart(chart_data)

# 柱状图的可视化
# “streamlit”的“bar_chart()”方法显示柱状图,例如下面的代码

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

# 显示图像
# “streamlit”中的“image”方法可以用来显示一张或多张图像,其中的方法原型,

# streamlit.image(image, caption=None, width=None, use_column_width=False, clamp=False, channels='RGB', format='JPEG')
# 参数:
# image:要显示的图像,类型可以是numpy.ndarray, [numpy.ndarray], BytesIO, str, 或 [str]) – 单色图像为(w,h) 或 (w,h,1)
# 彩色图像为(w,h,3)
# RGBA图像为(w,h,4)
# 也可以指定一个图像url,或url列表
# caption:图像标题,字符串。如果显示多幅图像,caption应当是字符串列表
# width :图像宽度,None表示使用图像自身宽度
# use_column_width:如果设置为True,则使用列宽作为图像宽度
# clamp:是否将图像的像素值压缩到有效域(0~255) ,仅对字节数组图像有效。
# channels:图像通道类型,'RGB' 或 'BGR',默认值:RGB
# format:图像格式:'JPEG' 或'PNG'),默认值:JPEG


# image = Image.open('123.jpg')
# st.image(image, caption='刘雅鸣视察葫芦岛', use_column_width=True)
#


image = Image.open('123.jpg')
st.image(image, caption='Sunrise by the mountains')

# 绘制一个地图
# map_data = pd.DataFrame(
#     np.random.randn(1000, 2) / [50, 50] + [37.76, -122.4],
#     columns=['lat', 'lon'])
#
# st.map(map_data)

# 调整地图的中心到沈阳
map_data = pd.DataFrame(
    np.random.randn(1000, 2) / [50, 50] + [41.8, 123.4],
    columns=['lat', 'lon'])
st.map(map_data)

# 增加交互性,显示单选框
# st.checkbox()**单选框,更多请查询API reference

if st.checkbox('Show dataframe'):
    chart_data = pd.DataFrame(
        np.random.randn(20, 3),
        columns=['a', 'b', 'c'])
    chart_data
# 增加复选框
option = st.selectbox(
    'Which number do you like best?',
    df['first column'])

'You selected: ', option

# 调整布局
# 为了使得你的webApp更加好看,你可以将一些不必要的内容放置到其他区域。这样可以使得你的webApp居中。
# **st.sidebar()**将刚才的边框设置在左侧
# tips:可以发现每次选择不同的数字,整个页面都会刷新,包括刚才设置的地图上的点也会跟着刷新,和刚才的折线图

add_selectbox = st.sidebar.selectbox(
    "How would you like to be contacted?",
    ("Email", "Home phone", "Mobile phone")
)

# 你也可以使用st.beta_columns来并排布置小部件,或者使用st.beta_expander来隐藏大型内容以节省空间

left_column, right_column = st.beta_columns(2)
pressed = left_column.button('Press me?')
if pressed:
    right_column.write("Woohoo!")

expander = st.beta_expander("FAQ")
expander.write("Here you could put in some really, really long explanations...")

# 添加进度条
# 当在一个应用程序中添加长期运行的计算时,你可以使用st.progress()来实时显示状态。
# 首先,让我们导入时间。我们将使用time.sleep()方法来模拟一个长期运行的计算
'Starting a long computation...'

# Add a placeholder
latest_iteration = st.empty()
bar = st.progress(0)

for i in range(100):
    # Update the progress bar with each iteration.
    latest_iteration.text(f'Iteration {i + 1}')
    bar.progress(i + 1)
    time.sleep(0.1)

'...and now we\'re done!'


# 现在让我们使用st.echo()让中间部分的代码可视化:
# st.echo - 显示应用源代码
# 在with块中使用streamlit的echo方法显示应用源代码,然后执行。

def get_user_name():
    return 'John'


with st.echo():
    # Everything inside this block will be both printed to the screen
    # and executed.

    def get_punctuation():
        return '!!!'


    greeting = "Hi there, "
    value = get_user_name()
    punctuation = get_punctuation()

    st.write(greeting, value, punctuation)

# And now we're back to _not_ printing to the screen
foo = 'bar'
st.write('Done!')

# st.pyplot - 显示pyplot图表
# streamlit的pyplot方法显示指定的matplotlib.pyplot图表。
#
# 方法原型
# streamlit.pyplot(fig=None, **kwargs)
# 参数:
# fig:要使用的绘制面板,当为None时,使用整个绘图区域
# **kwargs :传入Matplotlib的savefig函数的关键字参数


fig, ax = plt.subplots()
ax.scatter([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
st.pyplot(fig)

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

# st.vega_lite_chart
# Streamlit Version   v1.1.0
# Display a chart using the Vega-Lite library.

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

st.vega_lite_chart(df, {
    'mark': {'type': 'circle', 'tooltip': True},
    'encoding': {
        'x': {'field': 'a', 'type': 'quantitative'},
        'y': {'field': 'b', 'type': 'quantitative'},
        'size': {'field': 'c', 'type': 'quantitative'},
        'color': {'field': 'c', 'type': 'quantitative'},
    },
})

# st.altair - 显示altair图表
# streamlit的altair方法使用Altair库显示指定的图表。
#
# 方法原型
# streamlit.altair_chart(altair_chart, width=0)
# 参数:
#
# altair_chart:要显示的Altair图表对象,类型:altair.vegalite.v2.api.Chart
# width:宽度模式,0 表示拉伸图表到文档宽度,-1表示使用Altair的默认值,大于0表示 设置的宽度像素。默认值:0。注意如果顶层宽度已定义,那么将覆盖这里的设定。
# 示例代码

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.altair_chart(c, use_container_width=True)


  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-29 12:58:42  更:2021-10-29 13:01:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 22:35:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码