日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

如果有人告訴您可以使用150-200行代碼創(chuàng)建交互式Web應(yīng)用程序,該怎么辦? 有趣的權(quán)利。 Streamlit為您提供了使用簡單的Python腳本和一些streamlit調(diào)用來創(chuàng)建漂亮的Web應(yīng)用程序的相同機(jī)會。

使用Streamlit從簡單的Python腳本創(chuàng)建交互式WebApp

 

Streamlit是一個(gè)開放源代碼框架,用于以最快的方式創(chuàng)建數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)應(yīng)用程序以進(jìn)行數(shù)據(jù)探索。 我最喜歡streamlit的地方是它為您提供了實(shí)時(shí)編碼體驗(yàn)。 您可以啟動流式應(yīng)用程序,并且每次保存時(shí),您都會看到代碼同時(shí)反映在瀏覽器中。 整齊吧!

使用Streamlit從簡單的Python腳本創(chuàng)建交互式WebApp

 

在這篇文章中,我們將為印度的Covid-19 Impact Analysis構(gòu)建一個(gè)Streamlit Web應(yīng)用程序。 我已經(jīng)創(chuàng)建了完整的網(wǎng)站,您可以在這里瀏覽它-www.corona-updates.in。 我們不會深入研究Pandas,但是本教程將更側(cè)重于Streamlit。 我們將研究一些Pandas庫函數(shù),但將深入探討Streamlit。 因此,讓我們開始吧!

要求:

· Streamlit

· Pandas

· plotly.express

使用pip安裝streamlit:

pip install streamlit

安裝完成后,您可以通過運(yùn)行示例應(yīng)用程序?qū)ζ溥M(jìn)行測試。

streamlit hello

您可以使用以下命令運(yùn)行名為App.py的流式Web應(yīng)用程序:

streamlit run app.py

精通Streamlit之后,現(xiàn)在就創(chuàng)建我們的網(wǎng)絡(luò)應(yīng)用。 創(chuàng)建一個(gè)python文件app.py,然后導(dǎo)入您需要創(chuàng)建的庫和python腳本以及streamlit。

使用Streamlit從簡單的Python腳本創(chuàng)建交互式WebApp

 

1.導(dǎo)入數(shù)據(jù)庫

我們正在使用以下驚人的API導(dǎo)入數(shù)據(jù)庫,以了解Covid-19印度的影響:https://api.covid19india.org。

使用Streamlit從簡單的Python腳本創(chuàng)建交互式WebApp

 

在這里,在load_data()方法中,我們正在使用pandas庫讀取.csv文件,并且通過緩存數(shù)據(jù)來提高代碼效率。 但是隨著Covid-19的數(shù)據(jù)不斷變化,我們每5分鐘或最多20個(gè)條目清除一次緩存。 如果您有一個(gè)不經(jīng)常更改數(shù)據(jù)的用例,則只需使用@ st.cache(persist = True)

2.創(chuàng)建標(biāo)題,文本內(nèi)容和側(cè)邊菜單

Streamlit支持markdown,因此在我們的網(wǎng)絡(luò)應(yīng)用中使用不同的字體大小非常容易。 它還通過傳遞參數(shù)來支持html:unsafe_allow_html =對st.markdown()調(diào)用正確,因此,我們可以按需要的方式設(shè)置文本樣式。

使用Streamlit從簡單的Python腳本創(chuàng)建交互式WebApp

 


使用Streamlit從簡單的Python腳本創(chuàng)建交互式WebApp

 

由于我們使用HTML將自定義顏色設(shè)為藍(lán)色,因此說明顯示為藍(lán)色。 我們也可以使用標(biāo)頭和子標(biāo)頭,就像我們將st.title()用于不同的標(biāo)題一樣。 或者我們可以為此使用markdown。

//will also give the same result as st.title()
st.markdown("#  Covid-19 Impact in India")
st.sidebar.title('Select the parameters to analyze Covid-19 situation')

3.插入復(fù)選框,單選按鈕和滑塊

使用Streamlit從簡單的Python腳本創(chuàng)建交互式WebApp

 

st.sidebar.checkbox("Show Analysis by State", True, key=1)
select = st.sidebar.selectbox('Select a State',data['State'])
#get the state selected in the selectbox
state_data = data[data['State'] == select]
select_status = st.sidebar.radio("Covid-19 patient's status", ('Confirmed',
'Active', 'Recovered', 'Deceased'))

· 復(fù)選框-復(fù)選框中的第一個(gè)參數(shù)定義復(fù)選框的標(biāo)題,第二個(gè)參數(shù)定義True或False,即默認(rèn)情況下是否選中它,第三個(gè)參數(shù)定義復(fù)選框的唯一鍵。

· 選擇框—此選擇框包含所有印第安州。 第一個(gè)參數(shù)是選擇框的標(biāo)題,第二個(gè)參數(shù)定義要在選擇框中填充的值的列表。 在這里,第二個(gè)參數(shù)是我們之前加載的.csv文件中的列名"州"。 您可以自己打開和瀏覽表格。 在下一行中,我們僅從選擇框中獲取state_data中針對所選狀態(tài)的數(shù)據(jù)條目。 我們也可以在此處傳遞關(guān)鍵參數(shù)。

· 單選按鈕—僅供您參考,我們目前尚未真正在Web應(yīng)用程序中使用它。 與往常一樣,第一個(gè)參數(shù)是廣播組的標(biāo)題,第二個(gè)參數(shù)接受選項(xiàng)的元組。 我們也可以在此處傳遞關(guān)鍵參數(shù)。

Plotting a graph

使用Streamlit從簡單的Python腳本創(chuàng)建交互式WebApp

 

def get_total_dataframe(dataset):
    total_dataframe = pd.DataFrame({
    'Status':['Confirmed', 'Active', 'Recovered', 'Deaths'],
    'Number of cases':(dataset.iloc[0]['Confirmed'],
    dataset.iloc[0]['Active'], dataset.iloc[0]['Recovered'],
    dataset.iloc[0]['Deaths'])})
    return total_dataframe
state_total = get_total_dataframe(state_data)
if st.sidebar.checkbox("Show Analysis by State", True, key=2):
    st.markdown("## **State level analysis**")
    st.markdown("### Overall Confirmed, Active, Recovered and " +
    "Deceased cases in %s yet" % (select))
    if not st.checkbox('Hide Graph', False, key=1):
        state_total_graph = px.bar(
        state_total, 
        x='Status',
        y='Number of cases',
        labels={'Number of cases':'Number of cases in %s' % (select)},
        color='Status')
        st.plotly_chart(state_total_graph)

方法get_total_dataframe()用于獲取數(shù)據(jù)框,以繪制選定狀態(tài)的圖。 dataset.iloc [0] [Confirmed]將返回" Confirmed"列的第一項(xiàng),并且由于我們僅傳遞所選狀態(tài)的數(shù)據(jù),因此在" Confirmed"," Recovered"," Active"和" Deceased"列中將只有一個(gè)條目。 (檢出.csv文件)

未選中"按狀態(tài)顯示分析"復(fù)選框,我們不會在主屏幕上看到"狀態(tài)級別分析"部分。 同樣,如果選中了"隱藏圖形"復(fù)選框,我們將不會看到圖形。

要繪制圖形,我們將使用plotly.express庫的bar方法。 第一個(gè)參數(shù)是我們要繪制的數(shù)據(jù)框,第二個(gè)參數(shù)是x軸的列,第三個(gè)參數(shù)是y軸的列,如果要更改列名,則labels參數(shù)是可選的 對于圖形和顏色參數(shù),此處是根據(jù)數(shù)據(jù)框中的"狀態(tài)"列對圖形進(jìn)行顏色編碼。

最后,為了顯示該圖在我們的Web應(yīng)用程序中,我們使用st.plotly_chart()方法。 我們也可以使用st.write()來顯示圖形。

5.顯示數(shù)據(jù)框或表

使用Streamlit從簡單的Python腳本創(chuàng)建交互式WebApp

 

· st.dataframe():第一張圖片是st.dataframe()的結(jié)果,用于第二張圖片中的同一數(shù)據(jù)集。 您還可以使用內(nèi)部調(diào)用st.datframe()的st.write()。

· st.table():我們使用st.table()獲得了第二張圖片中的表格。 這顯示了數(shù)據(jù)框中的所有數(shù)據(jù),而沒有任何滾動。

def get_table():
    datatable = data[['State', 'Confirmed', 'Active', 'Recovered', 'Deaths']].sort_values(by=['Confirmed'], ascending=False)
    datatable = datatable[datatable['State'] != 'State Unassigned']
    return datatable
datatable = get_table()
st.markdown("### Covid-19 cases in India")
st.markdown("The following table gives you a real-time analysis of the confirmed, active, recovered and deceased cases of Covid-19 pertaining to each state in India.")
st.dataframe(datatable) # will display the dataframe
st.table(datatable)# will display the table

在get_table()中,我們通過從選擇框獲得的狀態(tài)的最高"已確認(rèn)"情況獲得排序后的數(shù)據(jù)框。 我們還會從數(shù)據(jù)集中刪除狀態(tài)為"未分配狀態(tài)"的行。

而已! 是的,就是這么簡單。 :)

您已經(jīng)準(zhǔn)備創(chuàng)建自己的Web應(yīng)用程序并嘗試使用Streamlit。 這篇文章是關(guān)于如何使用簡單的Python腳本創(chuàng)建Streamlit應(yīng)用程序的,我希望您喜歡它。 我創(chuàng)建了另一本有關(guān)如何使用AWS EC2部署此Web應(yīng)用程序的詳細(xì)教程。 請檢查一下,讓我知道您的意見。

我已經(jīng)為印度的Covid-19 Impact創(chuàng)建了完整的Streamlit Web應(yīng)用程序,并使用AWS EC2進(jìn)行了部署。 您可以在這里查看它-www.corona-updates.in。 請?jiān)谠u論部分提供您的寶貴反饋。 謝謝 :)

(本文翻譯自Nishtha Goswami的文章《Using Streamlit to create interactive WebApps from simple Python scripts》,參考:
https://medium.com/swlh/using-streamlit-to-create-interactive-webapps-from-simple-python-scripts-f78b08e486e7)

分享到:
標(biāo)簽:Streamlit
用戶無頭像

網(wǎng)友整理

注冊時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定