時(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)注我的專欄:Flask
、Djong
等框架。然而研究這些對(duì)于初學(xué)者來(lái)講,尤其是沒有web開發(fā)基礎(chǔ)的數(shù)據(jù)分析人員是痛苦的。Steamlit
,可以快速利用簡(jiǎn)單的代碼快速布局自己想要的web界面!效果如下Python
的版本升級(jí)到3.7或以上,同時(shí)設(shè)置好環(huán)境變量,這里默認(rèn)讀者都已經(jīng)設(shè)置好不細(xì)講。Windows
或 macOS
中都可以使用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)。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)用即可。localhost
網(wǎng)頁(yè),效果如下st.text_input()
函數(shù)df.head()
,那么在MLweb里面怎么實(shí)現(xiàn)?st.table()
,st.dataframe()
,st.write()
。st.write()
是常見的表格函數(shù),st.write()
被稱為streamlit
庫(kù)的瑞士軍刀,圖像、文本、表格都可以用它來(lái)實(shí)現(xiàn),至于三者有什么區(qū)別呢?st.write()
:交互式表格,不可修改st.table()
:靜態(tài)表格st.dataframe()
:返回一個(gè)可以使用和修改的對(duì)象,可以向其中添加數(shù)據(jù)或替換數(shù)據(jù).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]}))
效果如圖: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í)間。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)
效果圖如下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ō)明。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: pass
MACD治標(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ì)感興趣:
關(guān)鍵詞:
客戶&案例
營(yíng)銷資訊
關(guān)于我們
客戶&案例
營(yíng)銷資訊
關(guān)于我們
微信公眾號(hào)
版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。