Pythonのチュートリアル:Pythonで書かれた簡単なWebアプリケーションを使用して

Pythonは今言語をプログラミング多くのプログラマの関心事の一つとなっている、多くのプログラマは、Pythonプログラミングを取得し始め、そして非常に多くの場合、自分の操作で選択すること、そしてそれは今またはプログラマ子供のプログラミングであるかどうかをされている、Pythonのドアを持っているであろうクラス、そしてあなたと共有し、今日。

1.jpeg

  インストール

  インストールが実行コマンドを使用して簡単なステップのとおりです。

  ピップstreamlitをインストール

  ただ、インストールが成功したかどうかを確認するために実行します。

  こんにちはstreamlit

  画面上に表示する必要があります。

2.JPG

  Streamlitアプリケーションの実行を確認するために、8501:localhostに:あなたは、あなたのブラウザでローカルURLにアクセスすることができます。偉大なサンプルがたくさんある開発者は、試してご利用いただけます。

3.JPG

  Streamlitの "Hello、World" の

  シンプルなPythonコードの開発を達成するために設計されたシンプルなプログラムをStreamlit。

  そして、それは実際にそれが明記ようにかどうかを確認するための簡単なアプリケーションを設計します。

  Streamlitの「こんにちは、世界」と呼ばれるプログラムから開始します。このプログラムは複雑ではありません。コピーをすることができ、「helloworld.py」フォルダに次のコードを貼り付けます。

  STとしてインポートstreamlit

  X = st.slider( 'X')

  st.write(X '乗である'、X * X)

  そして、最終段階に実行します。

  streamlit実行helloworld.py

  ルック、ローカルホストに接続するには、ブラウザ:8501は、あなたが結果を得ることができ、マウスをスライドさせ、プログラムの実行を見ることができます。

  シンプルなスライダープラグインアプリケーション

4.JPG

 

  操作は非常に簡単です。地図アプリケーションで構築する場合の二つの特徴のStreamlitを使用しています。

  st.sliderプラグイン - スライドWebアプリケーションの出力内容を変更します。

  そして、一般的なst.write指示。あなたは、アイコンと驚きで単純なテキストデータフレームから何のために書くことができます。後に詳細に説明します。

  黒板にノック:私たちは、あなたがプラグの値を変更するたびに、アプリケーション全体を上から下に実行されることを覚えておく必要があります。

  Streamlitプラグ

  插件提供了控制应用程序的方法,阅读了解插件的最佳选择就是API参考文档,不过笔者这里也会讲解一些插件,它们都是用户在操作后期会用的最主要的插件。

  1.滑块

  streamlit.slider(label,min_value=None,max_value=None,value=None,step=None,format=None)

  在上文已经目睹了st.slider的执行过程,它可以结合min_value、max_value使用,用于进一步得到一定范围内的输入内容。

  2.文本输入

  获取用户输入最简单的方式是输入URL或一些用于分析情绪的文本内容,需要的只是一个用来命名文本框的标签。

  import streamlit as st

  url=st.text_input('Enter URL')

  st.write('The Entered URL is',url)

  看到的程序将是这样:

  简单的text_input widget程序

5.jpg

  贴士:可以只改变helloworld.py文件然后刷新页面。笔者的做法是打开该文件然后在文本编辑器中改动,再一点一点查看变动的地方。

  3.复选框

  复选框的一个功能就是隐藏或显示/隐藏程序中的特定区域,另一个用途是设置函数的布尔参数值。st.checkbox()需要一个参数,即插件标签。在该应用程序中,复选框会用来切换条件语句。

  import streamlit as st

  import pandas as pd

  import numpy as np

  df=pd.read_csv("football_data.csv")

  if st.checkbox('Show dataframe'):

  st.write(df)

  简单的复选框插件应用程序

6.jpg

  4.下拉框插件

  通过st.selectbox可以在一系列选项或列表中进行选择。常见的用法是将其作为下拉项然后从名单中挑选值。

  import streamlit as st

  import pandas as pd

  import numpy as np

  df=pd.read_csv("football_data.csv")option=st.selectbox(

  'Which Club do you like best?',

  df['Club'].unique())

  'You selected:',option

  简单的下拉框/复选框插件程序

7.jpg

  5.多选插件

  也可以用下拉框内的多个值。这里讲的是使用st.multiselect在变量选选中获取多个值作为列表。

  import streamlit as st

  import pandas as pd

  import numpy as np

  df=pd.read_csv("football_data.csv")

  options=st.multiselect(

  'What are your favorite clubs?',df['Club'].unique())

  st.write('You selected:',options)

  简单的下拉框插件应用程序

8.jpg

  一步步创建应用程序

  重要插件了解的也差不多了,现在马上要用多个插件创建应用程序。

  从简单的步骤入门,尝试使用Streamlit对足球数据进行可视化。有了上面那些插件,这个步骤执行起来会容易很多。

  import streamlit as st

  import pandas as pd

  import numpy as np

  df=pd.read_csv("football_data.csv")

  clubs=st.multiselect('Show Player for clubs?',df['Club'].unique())

  nationalities=st.multiselect('Show Player from Nationalities?',df['Nationality'].unique())

  #Filter dataframe

  new_df=df[(df['Club'].isin(clubs))&(df['Nationality'].isin(nationalities))]

  #write dataframe to screen

  st.write(new_df)

  简单的应用程序会是这样的:

9.jpg

  同时使用多个插件

  这一点也不难,但目前看起来似乎太基础了。是否可以考虑加入一些图表呢?

  Streamlit当前支持许多用于绘图的库,其中就有Plotly,Bokeh,Matplotlib,Altair和Vega图表。Plotly Express也可以,只不过没有详细说明。也存在一些内嵌式图表,相当于Streamlit“自带”的,比如st.line_chart和st.area_chart.

  此时会用到plotly_express,下面是设计程序会用到的代码。该过程只会调用Streamlit四次。剩下的都是一些简单的Python代码操作。

  import streamlit as st

  import pandas as pd

  import numpy as np

  import plotly_express as px

  df=pd.read_csv("football_data.csv")

  clubs=st.multiselect('Show Player for clubs?',df['Club'].unique())

  nationalities=st.multiselect('Show Player from Nationalities?',df['Nationality'].unique())new_df=df[(df['Club'].isin(clubs))&(df['Nationality'].isin(nationalities))]

  st.write(new_df)

  #create figure using plotly express

  fig=px.scatter(new_df,x='Overall',y='Age',color='Name')

  #Plot!

  st.plotly_chart(fig)

  添加图表

10.jpg

  改进

  在本文一开始有提到插件每次发生变动时,整个应用程序就会由上至下地运行。其实并不可行,因为创建的应用程序会保留下深度学习模型或复杂的机器学习模型。接下来在讲Streamlit的缓存时会向读者阐释这一点。

  1.缓存

  在这个简单的程序里,但凡值有所变动时,数据科学家们就会反复浏览数据框。它比较适用于用户手中的小规模数据,至于大规模或需要进行很多步处理的数据,它是不予理睬的。接下来在Streamlit中通过st.cache装饰器函数体验缓存的功能吧。

  import streamlit as st

  import pandas as pd

  import numpy as np

  import plotly_express as px

  df=st.cache(pd.read_csv)("football_data.csv")

  或者是复杂一些、时间耗费久一些的函数,只需要运行一次,此时可以用:

   st.cache

  def complex_func(a,b):

  DO SOMETHING COMPLEX

  #Won't run again and again.

  complex_func(a,b)

  用Streamlit的缓存装饰器标记函数时,无论这个函数是否执行,都会检查输入的参数值(由该函数处理的)。

  如果Streamlit之前没有处理过这些数据,它会调用函数并将运算结果存到本地缓存中。

  下次再调用函数时,倘若还是这些参数,Streamlit就会完全跳过这一块的函数执行,直接用缓存器里的结果数据。

  2.侧边栏

  为了根据个人的倾向需求使界面更加简洁,用户可能会想着把插件移动到侧边栏内,比如像Rshiny仪表盘。这非常简单,只需在插件代码中添加st.sidebar即可。

  import streamlit as st

  import pandas as pd

  import numpy as np

  import plotly_express as px

  df=st.cache(pd.read_csv)("football_data.csv")

  clubs=st.sidebar.multiselect('Show Player for clubs?',df['Club'].unique())

  nationalities=st.sidebar.multiselect('Show Player from Nationalities?',df['Nationality'].unique())

  new_df=df[(df['Club'].isin(clubs))&(df['Nationality'].isin(nationalities))]

  st.write(new_df)

  #Create distplot with custom bin_size

  fig=px.scatter(new_df,x='Overall',y='Age',color='Name')

  #Plot!

  st.plotly_chart(fig)

  将插件移动到侧边栏内

  3.Markdown标记语言可以吗?

  笔者特别喜欢在Markdown里编辑文字,因为发现相比HTML,它少了那些繁琐的操作,而且更能胜任数据科学的任务。所以读者也能在Streamlit程序中应用Markdown吗?

  答案是可以。而且是有迹可循的。在笔者看来,最合适的就是调用Magic指令。通过该指令,用户做标记语言就会像写评论一样简单。用户也可以使用指令st.markdown。

  import streamlit as st

  import pandas as pd

  import numpy as np

  import plotly_express as px'''

  #Club and Nationality App

  This very simple webapp allows you to select and visualize players from certain clubs and certain nationalities.

  '''

  df=st.cache(pd.read_csv)("football_data.csv")

  clubs=st.sidebar.multiselect('Show Player for clubs?',df['Club'].unique())

  国籍= st.sidebar.multiselect( 'ショー民族からのプレーヤー?'、DF [ '国籍']。ユニークな())new_df = DF [(DF [ 'クラブ']。ISIN(クラブ))&(DF [ '国籍「] .isin(国籍))]

  st.write(new_df)

  カスタムbin_sizeと#Create distplot

  図= px.scatter(new_df、X = '全体'、Y = '年齢'、色= '名前')

  「」」

  ###ここでは、全体的なプレーヤーの年齢との間の単純なチャートであります

  「」」

  st.plotly_chart(図)

おすすめ

転載: www.cnblogs.com/zqw111/p/11821590.html