zoukankan      html  css  js  c++  java
  • python 可视化包streamlit学习

    streamlit是一个快速开发基于python应用的数据app包,开发比较方便,同时官方也提供了
    一个方便云服务

    安装

     
    python -m venv venv
    source venv/bin/activate
    pip install -i https://mirrors.aliyun.com/pypi/simple/ streamlit

    简单应用

    • 命令
    streamlit
    Usage: streamlit [OPTIONS] COMMAND [ARGS]...
      Try out a demo with:
          $ streamlit hello
      Or use the line below to run your own script:
          $ streamlit run your_script.py
    Options:
      --log_level [error|warning|info|debug]
      --version                       Show the version and exit.
      --help                          Show this message and exit.
    Commands:
      activate  Activate Streamlit by entering your email.
      cache     Manage the Streamlit cache.
      config    Manage Streamlit's config settings.
      docs      Show help in browser.
      hello     Runs the Hello World script.
      help      Print this help message.
      run       Run a Python script, piping stderr to Streamlit.
      version   Print Streamlit's version number.
    • 创建应用
    streamlit hello
    • 运行效果


    • 参考代码
    import streamlit as st
    import numpy as np
    # Interactive Streamlit elements, like these sliders, return their value.
    # This gives you an extremely simple interaction model.
    iterations = st.sidebar.slider("Level of detail", 2, 20, 10, 1)
    separation = st.sidebar.slider("Separation", 0.7, 2.0, 0.7885)
    # Non-interactive elements return a placeholder to their location
    # in the app. Here we're storing progress_bar to update it later.
    progress_bar = st.sidebar.progress(0)
    # These two elements will be filled in later, so we create a placeholder
    # for them using st.empty()
    frame_text = st.sidebar.empty()
    image = st.empty()
    m, n, s = 960, 640, 400
    x = np.linspace(-m / s, m / s, num=m).reshape((1, m))
    y = np.linspace(-n / s, n / s, num=n).reshape((n, 1))
    for frame_num, a in enumerate(np.linspace(0.0, 4 * np.pi, 100)):
        # Here were setting value for these two elements.
        progress_bar.progress(frame_num)
        frame_text.text("Frame %i/100" % (frame_num + 1))
        # Performing some fractal wizardry.
        c = separation * np.exp(1j * a)
        Z = np.tile(x, (n, 1)) + 1j * np.tile(y, (1, m))
        C = np.full((n, m), c)
        M = np.full((n, m), True, dtype=bool)
        N = np.zeros((n, m))
        for i in range(iterations):
            Z[M] = Z[M] * Z[M] + C[M]
            M[np.abs(Z) > 2] = False
            N[M] = i
        # Update the image placeholder by calling the image() function on it.
        image.image(1.0 - (N / N.max()), use_column_width=True)
    # We clear elements by calling empty on them.
    progress_bar.empty()
    frame_text.empty()
    # Streamlit widgets automatically run the script from top to bottom. Since
    # this button is not connected to any other logic, it just causes a plain
    # rerun.
    st.button("Re-run")
    • 手工运行
    streamlit run app.py

    参考资料

    https://github.com/streamlit/streamlit
    https://www.streamlit.io/sharing
    https://docs.streamlit.io/
    https://blog.streamlit.io/

  • 相关阅读:
    Excel利用剪贴板或错位引用将多列行数不一的数据复制粘帖到一列 来自:Office之家 链接:http://www.icanzc.com/excel/5246.html
    R语言之避免for循环示例
    R语言之as.numeric(对于factor型转数值型)
    R语言之row_number
    如何在Windows环境下开发Python(转)
    单行代码 之Python 3.5版
    install xgboost package in python (Anaconda)
    汉诺塔,杨辉三角之python实现
    special-symbols in package(data.table)
    R&SQL合并记录并去重
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/14226844.html
Copyright © 2011-2022 走看看