用Python做web圖形用戶界面,最先想到的是Flask、Djong等框架。然而研究這些對(duì)于初學(xué)者" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁(yè) > 營(yíng)銷資訊 > 網(wǎng)站運(yùn)營(yíng) > Python + Steamlit 快速開發(fā)可視化 web 頁(yè)面!

Python + Steamlit 快速開發(fā)可視化 web 頁(yè)面!

時(shí)間:2023-05-26 16:39:02 | 來(lái)源:網(wǎng)站運(yùn)營(yíng)

時(shí)間:2023-05-26 16:39:02 來(lái)源:網(wǎng)站運(yùn)營(yíng)

Python + Steamlit 快速開發(fā)可視化 web 頁(yè)面?。?blockquote data-first-child data-pid="j56ba3rg">作者:F 原文:Python + Steamlit 快速開發(fā)可視化 web 頁(yè)面! (qq.com)歡迎關(guān)注我的專欄:


用Python做web圖形用戶界面,最先想到的是Flask、Djong等框架。然而研究這些對(duì)于初學(xué)者來(lái)講,尤其是沒有web開發(fā)基礎(chǔ)的數(shù)據(jù)分析人員是痛苦的。

幸運(yùn)的是,Python中也有很多第三方庫(kù)來(lái)快速進(jìn)行簡(jiǎn)單的web可視化。

今天再介紹一個(gè) Steamlit,可以快速利用簡(jiǎn)單的代碼快速布局自己想要的web界面!效果如下



,時(shí)長(zhǎng)00:45




一、安裝與運(yùn)行

安裝之前,我們需要將 Python 的版本升級(jí)到3.7或以上,同時(shí)設(shè)置好環(huán)境變量,這里默認(rèn)讀者都已經(jīng)設(shè)置好不細(xì)講。

WindowsmacOS 中都可以使用pip進(jìn)行安裝

pip install streamlit在終端輸出完畢后,可以執(zhí)行streamlit hello來(lái)檢驗(yàn),如果出現(xiàn)新的網(wǎng)頁(yè)界面,則說(shuō)明安裝成功。

并且之后利用Streamlit寫的程序,需要通過(guò)運(yùn)行streamlit run {你的py文件}來(lái)實(shí)現(xiàn)。

二、常用命令

接下來(lái)我們來(lái)了解 Streamlit 的一些常用命令。首先引入相關(guān)庫(kù)

import streamlit as stimport numpy as npimport pandas as pdimport time構(gòu)建 MLweb 的標(biāo)識(shí)題目,可以利用st.title()函數(shù)創(chuàng)建一個(gè)標(biāo)題。

st.title('我的第一個(gè)MLweb')保存這個(gè)py文件,命名為test.py,利用我們第一部分講解如何運(yùn)行代碼,在命令窗口輸入streamlit run test.py。

注意,這里直接用 streamlit 是已經(jīng)調(diào)好了環(huán)境變量,如果不想調(diào)的,打開 streamlit 的源程序文件,將streamlit的exe文件調(diào)用即可。

正常運(yùn)行下會(huì)彈出一個(gè) localhost網(wǎng)頁(yè),效果如下

輸入文字

如果需要輸入文字,可以用st.text_input()函數(shù)

構(gòu)建MLWeb表格

機(jī)器學(xué)習(xí)里面我們必須要做的是查看數(shù)據(jù)的類型,維度等具體特征。比如我們總是用到df.head(),那么在MLweb里面怎么實(shí)現(xiàn)?

有幾個(gè)方法:st.table(),st.dataframe(),st.write()

其中st.write()是常見的表格函數(shù),st.write()被稱為streamlit庫(kù)的瑞士軍刀,圖像、文本、表格都可以用它來(lái)實(shí)現(xiàn),至于三者有什么區(qū)別呢?

代碼如下

st.write("嘗試運(yùn)用dataframe弄一個(gè)表格")df = pd.DataFrame({ '第一列':[1,2,3,4], '第二列':['a','b','c','d']})st.table(df)st.write("嘗試運(yùn)用dataframe弄一個(gè)表格---write函數(shù)")st.write(pd.DataFrame({ 'first column': [1, 2, 3, 4], 'second column': [10, 20, 30, 40]}))效果如圖:

利用write函數(shù)則效果如下

可視化

機(jī)器學(xué)習(xí)挖掘數(shù)據(jù)的過(guò)程中可視化同樣占據(jù)了舉足輕重的地位,這里我們構(gòu)使用st.line_chart()函數(shù)

chart_data = pd.DataFrame( np.random.randn(20, 3), columns=['a', 'b', 'c'])st.line_chart(chart_data)效果如下:




可以看到,streamlit給了我們方便的功能:下載或查看我們構(gòu)建的圖片,你甚至可以查看圖片的源代碼!

地圖

streamlit里面有一個(gè)它時(shí)常拿來(lái)當(dāng)門面的圖,就是舊金山的地圖,你或許利用Flask在創(chuàng)建地圖,讀取坐標(biāo)點(diǎn),個(gè)性化地圖,顯示在web端這些步驟花費(fèi)大量時(shí)間。

而在這里,你進(jìn)需要提供你的坐標(biāo)點(diǎn)構(gòu)成的數(shù)據(jù)框,并用st.map()函數(shù)即可,這里用廣東杭州的坐標(biāo)點(diǎn)(不太精準(zhǔn)哈)來(lái)畫圖

代碼如下:

map_data = pd.DataFrame( np.random.randn(1000, 2) / [50, 50] + [23.26, 113.57], #N,W columns=['lat', 'lon'])st.map(map_data)效果圖如下




實(shí)戰(zhàn)

最后我們來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單股票查詢系統(tǒng)?;鞠敕ㄈ缦?br>
輸入:用戶寫入股票代碼,起始時(shí)間,結(jié)束時(shí)間。

輸出:股票交易數(shù)據(jù)表,股票ma線可視化。

首先引入包

import streamlit as stimport pandas as pdimport numpy as npimport tushare as ts接下來(lái)設(shè)置標(biāo)題與可寫入文本,這里的文本是在web端輸入的,用到st.text_input()函數(shù)

st.title('股票查詢系統(tǒng)')code = st.text_input('你的股票名稱:',help = 'code:股票代碼,即6位數(shù)字代碼,或者指數(shù)代碼(sh=上證指數(shù) sz=杭州成指 hs300=滬深300指數(shù) sz50=上證50 zxb=中小板 cyb=創(chuàng)業(yè)板)')start_time = st.text_input('起始時(shí)間:')stop_time = st.text_input('結(jié)束時(shí)間:')注意:這里的日期時(shí)間默認(rèn)以年-月-日格式輸入,同時(shí)在股票名稱旁邊加入一個(gè)輔助幫助說(shuō)明。

現(xiàn)在進(jìn)行股票名稱獲取,我們用tushare庫(kù)作為股票交易數(shù)據(jù)獲取,注意需要tushare的pro接口的api才能通過(guò)股票代碼獲取股票公司名稱

def get_name(stoke_code): pro=ts.pro_api() dat = pro.query('stock_basic', fields='symbol,name') company_name = list(dat.loc[dat['symbol'] == stoke_code].name)[0] return company_name接著對(duì)股票交易數(shù)據(jù)顯示,用到st.dataframe()函數(shù)來(lái)讓用戶更直觀的看到獲取的交易數(shù)據(jù)

data = ts.get_hist_data('{}'.format(code),start = '{}'.format(start_time), end = '{}'.format(stop_time))st.write('股票代碼為{}的交易數(shù)據(jù)表'.format(code))st.dataframe(data)最后可視化ma短線長(zhǎng)線

if code != '': data1 = data[['close','ma5','ma10']] st.line_chart(data1)else: passMACD治標(biāo)是大家??吹闹笜?biāo),那么我們將ma5和ma10在圖標(biāo)上顯示,并畫上收盤價(jià),讀者可以自行驗(yàn)證MACD的黃金或死亡交叉!




本文版權(quán)歸原作者所有,如有內(nèi)容版權(quán)等問題請(qǐng)聯(lián)系我,本文僅供交流學(xué)習(xí)使用
我的熱門文章,也許你會(huì)感興趣:

學(xué)習(xí)Python,這一篇管夠(入門|基礎(chǔ)|進(jìn)階|實(shí)戰(zhàn)) - 本站 (zhihu.com)

神器 pypandoc —— 實(shí)現(xiàn)電子書自由 - 本站 (zhihu.com)

我用Python半夜爬了嚴(yán)選的文胸?cái)?shù)據(jù),發(fā)現(xiàn)了驚天秘密 - 本站 (zhihu.com)

無(wú)歡不散:50個(gè)Pandas高頻使用技巧




我的熱門回答,也許你可以看看:

你用 Python 寫過(guò)哪些有趣的腳本? - 本站 (zhihu.com)

哪些 Python 庫(kù)讓你相見恨晚? - 本站 (zhihu.com)

你們都用 python 做什么呢(除了專職程序員)? - 本站 (zhihu.com)

剛接觸Python如何快速上手? - 本站 (zhihu.com)

關(guān)鍵詞:

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉