国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

有了這個開源項目,不會 Web 開發(fā)也能讓數(shù)據(jù)“動”起來!

新聞 前端
今天要向小伙伴們介紹的是一個能夠快速地把數(shù)據(jù)制作成可視化、交互頁面的 Python 框架:Streamlit,分分鐘讓你的數(shù)據(jù)動起來!

 [[406930]]

今天要向小伙伴們介紹的是一個能夠快速地把數(shù)據(jù)制作成可視化、交互頁面的 Python 框架:Streamlit,分分鐘讓你的數(shù)據(jù)動起來!

猶記得我在做機器學(xué)習(xí)和數(shù)據(jù)分析方面的畢設(shè)時,曾經(jīng)為了制作精美的圖表而抓耳撓腮,曾經(jīng)為了在頁面可視化、交互式展示數(shù)據(jù)而絞盡腦汁。現(xiàn)在擺在我們面前的是一個能夠快速可視化數(shù)據(jù)并且制作成交互頁面的 Python 框架, 僅需幾分鐘就可以快速構(gòu)建和部署功能強大的數(shù)據(jù)應(yīng)用程序 ,寫到這里 Streamlit 的高傲已經(jīng)盡數(shù)體現(xiàn)了。

Streamlit - The fastest way to build and share data apps :facepunch:

下面我們就一起來上手這個強大的 Python 數(shù)據(jù)可視化框架吧!

一、淺嘗 輒止

1、本地實驗環(huán)境: Python 3.6 - Python 3.8 。

2、安裝 Streamlit 體驗官方提供的 hello world 小 demo。

  1. pip install streamlit 
  2. streamlit hello 

 

 

 

 

 

 

3、運行上述命令后會自動打開 Streamlit 的初始頁面 http://localhost:8501/ 。

 

 

 

 

 

 

4、通過左邊欄可以選擇四個內(nèi)置小項目并查看其代碼,例如分形動畫、折線圖和層疊地圖等,能在網(wǎng)頁上點擊選擇設(shè)置一些參數(shù),動態(tài)查看效果。

 

 

 

 

 

 

二、熟能生巧

通過 Streamlit 提供的接口,完美避開 Django 和 Flask 框架,無需編寫 HTML、CSS、JavaScript 代碼,與魔幻的前端 say goodbye。

2.1 開發(fā)自己的 app

1、首先創(chuàng)建一個 Python 文件,命名為 test.py ,導(dǎo)入 Streamlit 庫。

  1. import streamlit as st 

2、通過如下命令啟動項目, Ctrl + c 即可結(jié)束項目。 

  1. # filename 自己的 py 文件名稱 
  2. streamlit run [filename] 

 

 

 

 

 

 

3、當(dāng)應(yīng)用程序正在運行時,每次修改 Python 文件并保存,網(wǎng)頁都會彈出提示“Source file changed”,可以選擇“Rerun”或者“Always rerun”,使得頁面能夠重新刷新。忽略掉小小的等待時間,我們能夠在快速交互循環(huán)中「所見即所得」。

4、我們在任何時候?qū)W(wǎng)頁內(nèi)容進行更新,包括:修改源碼、使用者和網(wǎng)頁進行交互(點擊網(wǎng)頁的按鈕、輸入文本),Streamlit 都是自上而下掃描解析并且運行整個代碼。

2.2 基礎(chǔ)命令

2.2.1 顯示文本

命令 效果
st.title() 添加一個標(biāo)題
st.write() Streamlit 的瑞士軍刀,可渲染如文本、Matplotlib 和 Altair 圖表等幾乎任何數(shù)據(jù)參數(shù)
st.text() 顯示純文本
st.header() 、 st.subheader() 二級標(biāo)題和三級標(biāo)題
st.markdown() 顯示 Markdown
st.latex() 顯示格式為 LaTeX 的數(shù)學(xué)表達式
st.code() 顯示帶有可選語法高亮顯示的代碼塊

 

 

 

 

 2.2.2「魔法」

我愿稱之為懶人命令——用盡量少的代碼達到同樣的效果。在不調(diào)用任何 Streamlit 方法的情況下,當(dāng)用戶自定義的變量出現(xiàn)在單行中,等同于 st.write() 效果。

  1. import pandas as pd 
  2. df = pd.DataFrame({ 
  3.   'first column': [1234], 
  4.   'second column': [10203040
  5. }) 
  6.  
  7. df 

 

 

 

 

 也可以將 ''' 和 ' 包裹的內(nèi)容直接顯示。

  1. # Draw a title and some text to the app: 
  2. ''
  3. # Welcome to HelloGitHub 
  4.  
  5. _快來加入我們吧_ 
  6. ''
  7.  
  8. x = 10 
  9. 'x', x  # <-- Draw the string 'x' and then the value of x 

 

 

 2.2.3 顯示數(shù)據(jù)表

Streamlit 能從多個不同角度快速、交互地可視化數(shù)據(jù),原始數(shù)據(jù)、圖表、JSON 數(shù)據(jù)等皆可。

命令 效果
st.dataframe() 將數(shù)據(jù)框顯示為交互式表格
st.table() 顯示靜態(tài)表格
st.json() 將對象或字符串顯示為 JSON 字符串

2.2.4 繪制圖表和地圖

Streamlit 支持多種流行的數(shù)據(jù)圖表庫,如 Matplotlib、Altair、deck.gl 等。

命令 效果
st.line_chart() 折線圖
st.area_chart() 面積圖
st.bar_chart() 條形圖
st.map() 在地圖上顯示數(shù)據(jù)點
st.pyplot() matplotlib.pyplot 圖表
st.altair_chart() 使用 Altair 庫顯示圖表
st.vega_lite_chart() 使用 vega_lite_chart 庫顯示圖表
st.pydeck_chart() 使用 PyDeck 庫繪制圖表

 

 

 

 

 2.2.5 顯示多媒體

動動鼠標(biāo)即可將圖像、視頻和音頻文件直接嵌入 Streamlit 應(yīng)用程序。

 

 

 2.2.6 交互式小部件

盯:eyes::漂亮的按鈕、滑塊、輸入框等小部件。每次用戶與小部件交互時,Python 腳本都會重新執(zhí)行,并且該小部件的輸出值會在運行期間設(shè)置為新值。

1、按鈕 button 。

  1. if st.button('HelloGitHub'): 
  2.     st.write('Subscribe our channels~'

 

 

 

 2、復(fù)選框 checkbox 。

  1. ret = st.checkbox('I love HelloGitHub!'
  2. if ret: 
  3.   st.write('Me too~'

 

 

 

 3、滑塊 slider ,可以選擇 int / float / data / time / datetime 等類型。

  1. age = st.slider('HelloGitHub 幾歲了?'0101
  2. st.write("HelloGitHub ", age, ' 歲了~'

 

 

 

 4、常用的命令列舉

命令 效果
st.radio() 單選按鈕
st.select() 單選框
st.multiselect() 多選框
st.text_input() 單行文本輸入框
st.text_area() 多行文本輸入框
st.number_input() 數(shù)字輸入框
st.date_input() 日期輸入框
st.time_input() 時間輸入框
st.file_uploader() 文件上傳
st.color_picker() 取色器

2.2.7 顯示進程和狀態(tài)

1、進度條 progress 。

  1. import time 
  2. my_bar = st.progress(0
  3. for percent_complete in range(100): 
  4.     time.sleep(0.1
  5.     my_bar.progress(percent_complete + 1

 

 

 

 2、 spinner :在執(zhí)行代碼塊時臨時顯示一條消息。

  1. import time 
  2. with st.spinner('Wait for it...'): 
  3.     time.sleep(5
  4. st.success('Done!'
  5. st.balloons() 

 

 

 

 3、其他

命令 效果
st.balloons() 慶祝氣球
st.error() / st.warning() / st.info() / st.success() / st.exception() 錯誤、警告、提示、成功、報錯信息提示

2.2.8 性能優(yōu)化

 

 

 Streamlit 使用 @st.cache 裝飾器使得頁面能夠快速“無痕”刷新。當(dāng)我們給函數(shù)打上 cache 標(biāo)記時,Streamlit 在碰到該函數(shù)的時候會檢查三個值:函數(shù)名稱、函數(shù)體、輸入?yún)?shù)。如果發(fā)現(xiàn)這三個值的組合第一次出現(xiàn),則會運行函數(shù),并且將結(jié)果存儲在本地緩存中。當(dāng)下次調(diào)用該函數(shù)時,如果這三個值沒有改變,則 Streamlit 會跳過函數(shù)執(zhí)行,直接讀取本地緩存返回結(jié)果。

  1. @st.cache 
  2. def HelloGitHub(url): 
  3.     # 返回相應(yīng)數(shù)據(jù) 
  4.     return data 
  5.  
  6. # 第一次遇到,執(zhí)行該函數(shù) 
  7. d1 = HelloGitHub(DATA_URL_1) 
  8.  
  9. # 傳入?yún)?shù)一致,第二次遇到不會執(zhí)行該函數(shù) 
  10. # 而會直接返回前一次計算的結(jié)果,d1 = d2 
  11. d2 = HelloGitHub(DATA_URL_1) 
  12.  
  13. # 傳入?yún)?shù)不同,重新執(zhí)行該函數(shù) 
  14. d3 = HelloGitHub(DATA_URL_2) 

2.2.9 布局設(shè)置

1、將交互小部件放入側(cè)邊欄。

  1. add_selectbox = st.sidebar.selectbox( 
  2.     "Which one?"
  3.     ("C++""Java""Python"

 

 

 

 2、表單 st.form() :將元素與“提交”按鈕一起處理。

  1. # 向表單插入元素 
  2. with st.form("my_form1"): 
  3.     st.write("我在 1 框框里~"
  4.     slider_val = st.slider("框框滑塊"
  5.     checkbox_val = st.checkbox("pick me"
  6.     # Every form must have a submit button. 
  7.     submitted = st.form_submit_button("1-Submit"
  8.  
  9. # 亂序插入元素 
  10. form = st.form("my_form2"
  11. form.slider("我在 2 框框里~"
  12. st.slider("我在外面"
  13. # Now add a submit button to the form: 
  14. form.form_submit_button("2-Submit"

 

 

 

 3、插入列并排的容器

  1. # 官方示例 
  2. col1, col2, col3 = st.beta_columns(3
  3. with col1: 
  4.     st.header("A cat"
  5.     st.image("https://static.streamlit.io/examples/cat.jpg"
  6. with col2: 
  7.     st.header("A dog"
  8.     st.image("https://static.streamlit.io/examples/dog.jpg"
  9. with col3: 
  10.     st.header("An owl"
  11.     st.image("https://static.streamlit.io/examples/owl.jpg"

2.3 修改配置

1、查看所有的配置選項: streamlit config show 。

2、Windows 系統(tǒng)可以在 %userprofile%/.streamlit/config.toml 全局文件下或者在當(dāng)前運行 Streamlit 的文件夾下建立 .streamlit/config.toml 文件進行設(shè)置。

3、某些配置例如外觀、主題等點擊網(wǎng)頁上的 Settings 也可輕松選擇。

 

 

 2.4 在 Streamlit sharing 上部署、管理和共享

1、將自己的項目代碼上傳到 GitHub 的共有倉庫,添加需求文件以管理任何外部依賴項,例如 requirements.txt 等。

2、在 https://streamlit.io/sharing 上注冊賬號并且申請邀請「Request an invite!」。收到邀請電子郵件后,即可使用該平臺部署管理。

3、選擇 New app 在 Deploy an app 中填入相應(yīng)信息即可。

 

 

 

 

 

 4、若應(yīng)用程序有很多依賴項,則第一次部署可能需要一些時間,最終應(yīng)用程序可以使用如下鏈接訪問:

  1. https://share.streamlit.io/[user name]/[repo name]/[branch name]/[app path] 

三、精益求精

到此,Streamlit 框架的基本接口和用法都已經(jīng)講完啦!更多詳情還需要友友們在實踐中探索,并將指令成功“嵌入”到自己的項目中。

很多命令在文檔的「API cheat sheet」中都可以快速搜索到,希望很快就能夠在 Streamlit Gallery 上看到大家分享的應(yīng)用,可以留言給我地址我會去把玩的~。

 

責(zé)任編輯:張燕妮 來源: HelloGitHub
相關(guān)推薦

2021-07-08 11:47:02

Saleor開源電子商務(wù)平臺

2020-03-03 15:11:04

開源技術(shù) 軟件

2021-01-07 10:15:55

開發(fā) Java開源

2020-06-18 09:10:10

開源技術(shù) Nginx

2021-03-29 10:37:35

開源技術(shù) 開發(fā)

2020-05-19 10:13:45

Java開發(fā)代碼

2021-04-19 16:15:35

開源開源工具

2020-04-21 15:22:35

ChromeFirefox瀏覽器

2019-09-29 10:42:02

人工智能機器學(xué)習(xí)技術(shù)

2009-06-15 16:45:29

動態(tài)語言Java

2021-06-07 09:37:24

蘋果數(shù)據(jù)開發(fā)

2017-07-21 17:38:26

災(zāi)備

2025-02-20 14:54:56

2022-04-19 16:44:19

MySQLbuffer數(shù)據(jù)庫

2025-04-02 04:55:00

2021-06-28 10:06:21

開源文本識別pyWhat

2020-03-30 15:20:56

Java開發(fā)代碼

2020-08-05 17:16:53

GitHub 技術(shù)開源

2015-12-07 09:45:18

Swift開源好處

2020-05-22 10:14:21

機器人人工智能系統(tǒng)
點贊
收藏

51CTO技術(shù)棧公眾號

国产美女精品一区二区三区| 国产精品久久久久久久久免费樱桃| 欧美另类xxx| av免费在线观| 中文字幕综合网| 久久久久久久少妇| 91久色porny| av之家在线观看| 高潮精品一区videoshd| 亚洲国产精品女人| 久久狠狠亚洲综合| 亚洲高清不卡一区| 麻豆精品国产传媒mv男同| 清纯唯美一区二区三区| 国产一区成人| 欧洲一区二区日韩在线视频观看免费 | 日韩视频中文| 亚洲专区国产精品| 91精品蜜臀一区二区三区在线| 国产成人精品999| 一区二区美女| 欧洲永久精品大片ww免费漫画| 亚洲系列另类av| 国产精品久久久久久久电影| 色狮一区二区三区四区视频| 91社区国产高清| 日韩午夜av| 欧美一区二视频在线免费观看| 美日韩一区二区三区| 菠萝蜜视频在线观看入口| 91欧美一区二区| 国产免费视频| 色综合天天综合网天天狠天天 | 亚洲黄色片在线观看| 福利h视频在线| 色偷偷成人一区二区三区91| 最新国产在线拍揄自揄视频| 亚洲天堂开心观看| www.成人网| 91欧美日韩一区| 日韩精品成人一区二区在线| 日本一本中文字幕| 国产精品乱码人人做人人爱 | www.youjizz.com在线| 在线观看欧美www| 天堂va在线高清一区| 情事1991在线| 日韩一级大片| 国内精品视频一区二区三区| 亚洲狼人国产精品| gogo在线高清视频| 欧美久久精品午夜青青大伊人| 日韩片欧美片| 小说区视频区图片区| 国产精品久久影院| 草草影院在线观看| 亚洲人午夜精品免费| 蜜桃a∨噜噜一区二区三区| 国产一区二区三区免费不卡| 99久久精品国产观看| 台湾av在线二三区观看| 亚洲精品在线91| 成人精品亚洲| 久久人妻无码一区二区| 亚洲在线视频一区| 免费看男女www网站入口在线 | 欧美丝袜美腿| 欧美久久久久久| 国产欧美日韩在线视频| www.久久热.com| 欧美成人性色生活仑片| 亚洲人成免费| 高清成人av| 亚洲成人av片| 日韩精品dvd| 草草久久久无码国产专区| 色婷婷国产精品综合在线观看| 激情久久一区二区| 精品免费二区三区三区高中清不卡| 久久久久久久久久美女| 国产调教视频在线观看| 国产精品福利久久久| 国产成人亚洲精品青草天美 | 亚洲精品乱码久久久久久蜜桃91| 中文字幕日本不卡| 91精品国产黑色瑜伽裤| 国产精品人成电影| 99久久久无码国产精品| 综合久久2019| 91精品美女在线| 久久久www成人免费毛片麻豆 | 9国产精品午夜| 一本色道久久99精品综合| 亚洲成人福利片| 亚洲午夜剧场| 综合视频免费看| 欧美福利视频导航| 清纯唯美亚洲综合一区| 日韩a在线播放| 亚洲精品成人av| 在线亚洲免费| 青青青草网站免费视频在线观看| 国产+人+亚洲| 91免费国产视频网站| 成人免费网站观看| 久久久久久艹| 91久久精品网| 水蜜桃久久夜色精品一区| 激情丁香婷婷| 欧美日韩电影在线观看| 99精品视频中文字幕| 日本韩国欧美| 国产精品一区在线免费观看| 91麻豆精品国产91久久久久久久久 | 欧美成人精精品一区二区频| 日韩一区二区三区免费播放| 综合激情丁香| 欧美激情视频在线免费观看 欧美视频免费一| 狠狠色丁香九九婷婷综合五月| 国产在线一区二区视频| 国产精品日韩高清| 欧美日韩专区在线| 欧美.日韩.国产.一区.二区| 传媒在线观看| 91精品国产综合久久香蕉最新版 | 免费在线看一区| 人交獸av完整版在线观看| 久久综合中文色婷婷| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 日韩电影免费网址| 性视频一区二区三区| 97超碰最新| 91精品婷婷国产综合久久性色| 西西人体一区二区| 精品日韩av| 亚洲美女网站18| 日韩精品中文字幕在线播放| 国产米奇在线777精品观看| 亚洲私拍视频| 欧美日韩在线一| 欧美激情综合色| 亚洲欧美日韩一区| 亚洲xxx拳头交| 久草免费在线| 艳母动漫在线免费观看| 色婷婷综合久久久久| 国产精品电影院| 久久在线电影| a毛片在线观看| 天天在线免费视频| 日韩专区中文字幕| 国产欧美精品在线观看| 蜜桃成人av| 91社区在线| 日本精品免费视频| 欧美高跟鞋交xxxxhd| 一区二区激情小说| 中文亚洲欧美| 国产精品99| 日本中文字幕视频| 国产美女在线精品免费观看| 亚洲国产精品小视频| 91麻豆高清视频| 日本不卡高清| 狂野欧美激情性xxxx欧美| 黄色一级视频片| 国产精品wwwwww| 日韩一级完整毛片| 久久久久久久一区| 欧美色图首页| 久久r热视频| 最新av电影| 亚洲视频小说| 81精品国产乱码久久久久久| 欧美精品99久久久**| 久久综合九色综合欧美亚洲| 一区二区三区毛片免费| 日韩天堂在线| 视频三区在线观看| 最新视频 - x88av| 色综合五月天导航| 欧美高清视频在线高清观看mv色露露十八| 国产一区二区精品久久99| 国产欧美日韩视频在线| av白虎一区| 天堂а√在线8种子蜜桃视频| 50度灰在线观看| 91性高湖久久久久久久久_久久99| 亚洲免费中文字幕| 粉嫩老牛aⅴ一区二区三区| 成人不卡免费av| 一区二区三区午夜视频| 日韩毛片免费看| 日本在线观看视频| 成人毛片免费在线观看| 色撸撸在线观看| 99精品欧美一区二区三区| 欧美精品成人91久久久久久久| 欧美一区二区三区系列电影| 中文字幕在线观看不卡|