日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python + Steamlit 快速开发可视化 web 页面!

發(fā)布時間:2024/9/15 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python + Steamlit 快速开发可视化 web 页面! 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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

幸運的是,Python中也有很多第三方庫來快速進行簡單的web可視化,例如之前介紹的 PyWebIO

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

一、安裝與運行

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

在 Windows 或 macOS 中都可以使用pip進行安裝

pip?install?streamlit

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

并且之后利用Streamlit寫的程序,需要通過運行streamlit run {你的py文件}來實現(xiàn)。

二、常用命令

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

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

構(gòu)建 MLweb 的標識題目,可以利用st.title()函數(shù)創(chuàng)建一個標題。

st.title('我的第一個MLweb')

保存這個py文件,命名為test.py,利用我們第一部分講解如何運行代碼,在命令窗口輸入streamlit run test.py。

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

正常運行下會彈出一個 localhost網(wǎng)頁,效果如下

輸入文字

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

構(gòu)建MLWeb表格

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

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

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

  • st.write():交互式表格,不可修改

  • st.table():靜態(tài)表格

  • st.dataframe():返回一個可以使用和修改的對象,可以向其中添加數(shù)據(jù)或替換數(shù)據(jù).

代碼如下

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

效果如圖:

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

可視化

機器學(xué)習(xí)挖掘數(shù)據(jù)的過程中可視化同樣占據(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里面有一個它時常拿來當門面的圖,就是舊金山的地圖,你或許利用Flask在創(chuàng)建地圖,讀取坐標點,個性化地圖,顯示在web端這些步驟花費大量時間。

而在這里,你進需要提供你的坐標點構(gòu)成的數(shù)據(jù)框,并用st.map()函數(shù)即可,這里用廣東廣州的坐標點(不太精準哈)來畫圖

代碼如下:

map_data?=?pd.DataFrame(np.random.randn(1000,?2)?/?[50,?50]?+?[23.26,?113.57],??#N,Wcolumns=['lat',?'lon']) st.map(map_data)

效果圖如下

實戰(zhàn)

最后我們來實現(xiàn)一個簡單股票查詢系統(tǒng)。基本想法如下

輸入:用戶寫入股票代碼,起始時間,結(jié)束時間。

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

首先引入包

import?streamlit?as?st import?pandas?as?pd import?numpy?as?np import?tushare?as?ts

接下來設(shè)置標題與可寫入文本,這里的文本是在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('起始時間:') stop_time?=?st.text_input('結(jié)束時間:')

注意:這里的日期時間默認以年-月-日格式輸入,同時在股票名稱旁邊加入一個輔助幫助說明。

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

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

接著對股票交易數(shù)據(jù)顯示,用到st.dataframe()函數(shù)來讓用戶更直觀的看到獲取的交易數(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短線長線

if?code?!=?'':data1?=?data[['close','ma5','ma10']]st.line_chart(data1) else:pass

MACD治標是大家常看的指標,那么我們將ma5和ma10在圖標上顯示,并畫上收盤價,讀者可以自行驗證MACD的黃金或死亡交叉!最終效果見下方視頻

各位伙伴們好,詹帥本帥搭建了一個個人博客和小程序,匯集各種干貨和資源,也方便大家閱讀,感興趣的小伙伴請移步小程序體驗一下哦!(歡迎提建議)

推薦閱讀

牛逼!Python常用數(shù)據(jù)類型的基本操作(長文系列第①篇)

牛逼!Python的判斷、循環(huán)和各種表達式(長文系列第②篇)

牛逼!Python函數(shù)和文件操作(長文系列第③篇)

牛逼!Python錯誤、異常和模塊(長文系列第④篇)

總結(jié)

以上是生活随笔為你收集整理的Python + Steamlit 快速开发可视化 web 页面!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。