首页 > 其他分享 >streamlit数据和绘图

streamlit数据和绘图

时间:2023-11-01 11:45:39浏览次数:75  
标签:data chart st 绘图 import streamlit config 数据

streamlit数据和绘图

目录

st.dataframe

数据展示 
支持(pandas.DataFrame, pandas.Series, pandas.Styler, pandas.Index, pyarrow.Table, numpy.ndarray, pyspark.sql.DataFrame, snowflake.snowpark.dataframe.DataFrame, snowflake.snowpark.table.Table, Iterable, dict, or None) 等
import streamlit as st
import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randn(50, 20), columns=("col %d" % i for i in range(20)))

st.dataframe(df)  # Same as st.write(df)

st.data_editor

数据编辑

import streamlit as st
import pandas as pd

df = pd.DataFrame(
    [
       {"command": "st.selectbox", "rating": 4, "is_widget": True},
       {"command": "st.balloons", "rating": 5, "is_widget": False},
       {"command": "st.time_input", "rating": 3, "is_widget": True},
   ]
)
edited_df = st.data_editor(df)

favorite_command = edited_df.loc[edited_df["rating"].idxmax()]["command"]   # 对核心数据进行标记

st.column_config

官方:https://docs.streamlit.io/library/api-reference/data/st.column_config

st.column_config.Column                   配置通用数据列
st.column_config.TextColumn				  配置文本数据列
st.column_config.NumberColumn			  配置数值数据列
st.column_config.CheckboxColumn			  配置复选框
st.column_config.SelectboxColumn		  配置下拉单选框
st.column_config.DatetimeColumn			  配置时间日期 
st.column_config.DateColumn               配置日期
st.column_config.TimeColumn               配置时间
st.column_config.ListColumn               配置列表
st.column_config.LinkColumn               配置链接
st.column_config.ImageColumn              配置图像
st.column_config.LineChartColumn          配置线性图表
st.column_config.BarChartColumn           配置柱状图
st.column_config.ProgressColumn           配置进度条
# 实例 在表格中添加线性表格

import pandas as pd
import streamlit as st

data_df = pd.DataFrame(
    {
        "sales": [
            [0, 4, 26, 80, 100, 40],
            [80, 20, 80, 35, 40, 100],
            [10, 20, 80, 80, 70, 0],
            [10, 100, 20, 100, 30, 100],
        ],
    }
)

st.data_editor(
    data_df,
    column_config={
        "sales": st.column_config.LineChartColumn(
            "Sales (last 6 months)",
            width="medium",
            help="The sales volume in the last 6 months",
            y_min=0,
            y_max=100,
         ),
    },
    hide_index=True,
)

st.metric

st.metric(label, value, delta=None, delta_color="normal", help=None, label_visibility="visible")
显示指标,并带有指示指标如何变化的可选指示符。
import streamlit as st

col1, col2, col3 = st.columns(3)
col1.metric("Temperature", "70 °F", "1.2 °F")
col2.metric("Wind", "9 mph", "-8%")
col3.metric("Humidity", "86%", "4%")

st.line_chart

直接绘制线状图

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

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

st.line_chart(chart_data)

img

动态绘制线状图

import time
import streamlit as st
import numpy as np

last_rows = np.random.randn(2, 2)  # 初始化 一个点
chart = st.line_chart(last_rows)

print(last_rows)
for i in range(1, 101):
    new_rows = last_rows[-1, :] + np.random.randn(5, 2).cumsum(axis=0)   # 在上一点
    chart.add_rows(new_rows)
    last_rows = new_rows
    time.sleep(0.1)

st.bar_chart

绘制柱状图

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

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

st.bar_chart(chart_data)

st.area_chart

绘制面积图

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

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

st.area_chart(chart_data)

img

st.scatter_chart

散点图


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

chart_data = pd.DataFrame(np.random.randn(80, 3 ), columns=["x","data","size"])

chart_data['color'] = np.random.choice(['A','B','C'], 80)   # 随机选择

st.scatter_chart(
    chart_data,
    x='x',
    y='data',
    color='color',
    size='size',
)

st.pyplot

依托于matplotlib自定义绘图

st.plotly_chart

依托 Plotly 自定义绘图,Plotly 是一个强大而受欢迎的 Python 库,用于创建交互式图表和可视化。

st.plotly_chart 函数还支持其他参数,可以进一步定制图表的外观和行为
st.plotly_chart(fig, theme="streamlit", use_container_width=True)


theme:设置图表的主题。可以设置为 “streamlit”(使用 Streamlit 的默认主题)或 None(使用 Plotly 的原生主题)。
sharing:设置图表的共享模式。可以设置为 “streamlit”(共享数据和回调函数)或 “auto”(自动检测共享模式)。
config:设置 Plotly 的配置选项。可以通过字典传递多个配置选项。

import streamlit as st
import plotly.express as px

# 添加直方图数据
x1 = np.random.randn(200) - 2
x2 = np.random.randn(200)
x3 = np.random.randn(200) + 2

# 将数据分组在一起
hist_data = [x1, x2, x3]
group_labels = ['Group 1', 'Group 2', 'Group 3']

# 使用自定义 bin_size 创建 distplot
fig = ff.create_distplot(hist_data, group_labels, bin_size=[.1, .25, .5])

# 绘制图表
st.plotly_chart(fig, use_container_width=True)

img

streamlit_echarts插件

import streamlit as st
from streamlit_echarts import st_echarts
st.set_page_config(layout="wide")
option = {
        "legend": {},
        "tooltip": {
            "trigger": 'axis',
            "showContent": "false"
        },
        "dataset": {
            "source": [
                ['销量', '2015', '2016', '2017', '2018', '2019', '2020'],
                ['春天', 56.5, 82.1, 88.7, 70.1, 53.4, 85.1],
                ['夏天', 51.1, 51.4, 55.1, 53.3, 73.8, 68.7],
                ['秋天', 40.1, 62.2, 69.5, 36.4, 45.2, 32.5],
                ['冬天', 25.2, 37.1, 41.2, 18, 33.9, 49.1]
            ]
        },
        "xAxis": {"type": 'category'},
        "yAxis": {"gridIndex": 0},
        "grid": {"top": '55%'},
        "series": [
            {"type": 'line', "smooth": "true", "seriesLayoutBy": 'row', "emphasis": {"focus": 'series'}},
            {"type": 'line', "smooth": "true", "seriesLayoutBy": 'row', "emphasis": {"focus": 'series'}},
            {"type": 'line', "smooth": "true", "seriesLayoutBy": 'row', "emphasis": {"focus": 'series'}},
            {"type": 'line', "smooth": "true", "seriesLayoutBy": 'row', "emphasis": {"focus": 'series'}},
            {
                "type": 'pie',
                "id": 'pie',
                "radius": "25%",
                "center": ['50%', '30%'],
                "emphasis": {"focus": 'data'},
                "label": {
                    "formatter": '{b}: {@2015} ({d}%)'
                },
                "encode": {
                    "itemName": '销量',
                    "value": '2015',
                    "tooltip": '2015'
                }
            }
        ],
            "tooltip": {
                    "show": "true",
                },
            "label": {
                "show":"true"
    },
    };

st_echarts(options=option)

参考资料

https://docs.streamlit.io/library/get-started

https://zhuanlan.zhihu.com/p/390136189

标签:data,chart,st,绘图,import,streamlit,config,数据
From: https://www.cnblogs.com/tian777/p/17802703.html

相关文章

  • Vue数据更新页面却没有更新的几种情况以及解决方法
    情况一:Vue无法检测实例被创建时不存在于data中的变量原因:由于Vue会在初始化实例时对data中的数据执行getter/setter转化,所以变量必须在data对象上存在才能让Vue将它转换为响应式的。例如: 12345newVue({  data:{},  template:'<div>{{message......
  • 【专题】2021 年中国电力行业经济运行报告PDF合集分享(附原数据表)
    报告合集根据实践创新,我们提出了“云上新型电力系统”,该系统将加速电力流、信息流和价值流的融通流动,通过更灵活高效的能源资源优化配置平台,支持大规模的新能源开发和利用。这一系统将为电力业务创新、电力行业发展以及全社会的绿色生产和生活提供坚实保障,并创造无限的可能性。电......
  • Python用PyMC3贝叶斯模型平均BMA:采样、信息准则比较和预测可视化灵长类动物的乳汁成分
    当面对多个模型时,我们有多种选择。模型选择因其简单性而具有吸引力,但我们正在丢弃有关模型中不确定性的信息。  print(f"Runing模型平均一种替代方法是执行模型选择,但讨论所有不同的模型以及给定信息准则的计算值。重要的是要将所有这些数字和测试放在我们问题的背景下,以便我们和......
  • R语言文本挖掘:kmeans聚类分析上海玛雅水公园景区五一假期评论词云可视化|附代码数据
    互联网时代,大量的新闻信息、网络交互、舆情信息以文本形式存储在数据库中,如何利用数据分析和文本挖掘的算法,将海量文本的价值挖掘出来,成为我们团队近期的一个研究方向,本案例就是我们的一个尝试。文本聚类其实也就是聚类分析在文本方向上的应用,首先我们要把一个个文档的自然语言转......
  • R语言有限混合模型聚类FMM、广义线性回归模型GLM混合应用分析威士忌市场和研究专利申
    最近我们被客户要求撰写关于有限混合模型聚类FMM的研究报告,包括一些图形和统计输出。摘要有限混合模型是对未观察到的异质性建模或近似一般分布函数的流行方法。它们应用于许多不同的领域,例如天文学、生物学、医学或营销。本文给出了这些模型的概述以及许多应用示例。介绍有限混合......
  • 【专题】2022年中国财税数字化行业研究报告PDF合集分享(附原数据表)
    数字化是复杂系统中的一个重要驱动因素,它得到了技术进步的支持。随着以大数据、物联网、云计算、人工智能等为代表的数字技术的不断成长和成熟,企业必须应对的内外部环境发生了翻天覆地的变化。新的全球生产力革命的一个关键驱动因素是数字智能化。企业的采购、生产、经营、销售等商......
  • R语言VAR模型的不同类型的脉冲响应分析|附代码数据
     最近我们被客户要求撰写关于VAR模型的研究报告,包括一些图形和统计输出。目录模型与数据估算值预测误差脉冲响应识别问题正交脉冲响应结构脉冲反应广义脉冲响应参考文献脉冲响应分析是采用向量自回归模型的计量经济学分析中的重要一步。它们的主要目的是描述模型变量对一个或多个......
  • 【专题】中国小微企业云财税行业研究报告PDF合集分享(附原数据表)
    数字化是复杂系统中的一个重要驱动因素,它得到了技术进步的支持。随着以大数据、物联网、云计算、人工智能等为代表的数字技术的不断成长和成熟,企业必须应对的内外部环境发生了翻天覆地的变化。新的全球生产力革命的一个关键驱动因素是数字智能化。企业的采购、生产、经营、销售等商......
  • R语言实现MCMC中的Metropolis–Hastings算法与吉布斯采样|附代码数据
     最近我们被客户要求撰写关于MCMC的研究报告,包括一些图形和统计输出。创建测试数据第一步,我们创建一些测试数据,用来拟合我们的模型。我们假设预测变量和因变量之间存在线性关系,所以我们用线性模型并添加一些噪音。  trueA<-5trueB<-0trueSd<-10sampleSize<-31......
  • 马尔可夫转换模型研究交通伤亡人数事故时间序列预测|附代码数据
    最近我们被客户要求撰写关于马尔可夫转换模型的研究报告,包括一些图形和统计输出。本文描述了R语言中马尔克夫转换模型的分析过程首先,对模拟数据集进行详细建模。接下来,将马尔可夫转换模型拟合到具有离散响应变量的真实数据集。用于验证对这些数据集建模的不同方法。模拟实例示例数......