<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          不到100行Python代碼教你做出精美炫酷的可視化大屏

          共 1036字,需瀏覽 3分鐘

           ·

          2021-12-22 15:55

          “碳達峰、碳中和”是2021年政府在不斷強調(diào)與非常重視的事兒,那什么是“碳達峰”、什么又是“碳中和”呢?這里小編來為大家科普一下,所謂的“碳達峰”指的是在某一時間點,二氧化碳的排放不再達到峰值,之后逐步回落。

          而“碳中和”也就意味著企業(yè)、個體與團體在一定時間內(nèi)直接或間接產(chǎn)生的溫室氣體排放總量,通過植樹造林、節(jié)能減排等形式,抵消自身產(chǎn)生的二氧化碳排放,實現(xiàn)二氧化碳的“零排放”。

          今天小編就用Python來制作一張可視化大屏,讓大家來感受一下近百年來二氧化碳排放的趨勢以及給我們所居住的環(huán)境造成了什么樣的影響。

          介紹數(shù)據(jù)來源

          本地可視化大屏中引用的數(shù)據(jù)來自于由英國牛津大學(xué)知名教授創(chuàng)辦的網(wǎng)站“用數(shù)據(jù)看世界(Our World in Data”,里面收入了各個學(xué)科的數(shù)據(jù),包括衛(wèi)生、食品、收入增長和分配、能源、教育、環(huán)境等行業(yè)進行了分析與可視化展示,十分地全面,并且當中的元數(shù)據(jù)開放在Github當中

          導(dǎo)入模塊并且讀取數(shù)據(jù)

          我們導(dǎo)入需要用到的模塊

          import?streamlit?as?st
          import?plotly.express?as?px
          import?pandas?as?pd
          我們這次是用到streamlit模塊來制作可視化大屏,該模塊是基于Python的可視化工具,最初開發(fā)出來的目的是給機器學(xué)習(xí)和數(shù)據(jù)科學(xué)團隊使用的。同時我們用plotly.express模塊來繪制各種圖表,因此圖表是具備交互性的,pandas模塊來讀取數(shù)據(jù)
          @st.cache
          def?get_data():
          ????url_1?=?'https://raw.githubusercontent.com/owid/owid-datasets/master/datasets/Climate%20change%20impacts/Climate%20change%20impacts.csv'
          ????url_2?=?"https://github.com/owid/co2-data/raw/master/owid-co2-data.csv"

          ????df_1?=?pd.read_csv(url_1)
          ????df_1_1?=?df_1.query("Entity?==?'World'?and?Year?<=2021")

          ????df_2?=?pd.read_csv(url_2)
          ????return?df_1_1,?df_2

          可視化大屏的制作

          然后我們來制作整個可視化大屏,首先我們先確認好可視化大屏的布局,如下圖所示

          然后我們針對每一篇布局來編寫代碼,首先看到的是標題部分,我們通過streamlit模塊當中的markdown方法來實現(xiàn)即可
          st.markdown()

          然后根據(jù)上面的布局設(shè)計,我們這么來編寫代碼

          col2,?space2,?col3?=?st.columns((10,1,10))

          with?col2:
          ????year?=?st.slider('選擇年份',1750,2020)
          ????...

          with?col3:?
          ????...
          ????selected_countries?=?st.multiselect('選擇國家',countries,default_countries)
          ????...

          col4,?space3,?col5,?space4,?col6?=?st.columns((10,1,10,1,10))
          with?col4:
          ????st.markdown("""##?二氧化碳和全球變暖之間的關(guān)系""")

          with?col5:
          ????st.subheader("?副標題一?")
          ????...

          with?col6:
          ????st.subheader("?副標題二?")
          ????...
          我們這里使用columns方法來將頁面均勻的分成若干列,并且給定特定的寬度,當然每列之間還需要留一點空隙,從美觀程度上來考慮,因此才有了變量space對應(yīng)的是寬度1的空隙
          col2,?space2,?col3?=?st.columns((10,1,10))
          然后我們針對分割開來的每個區(qū)域進行圖表的繪制,例如左上方的世界地圖,我們用plotly.express當中的choropleth方法來繪制,另外我們添加了時間軸,通過調(diào)用streamlit模塊當中的slider方法來實現(xiàn)
          with?col2:
          ????year?=?st.slider('選擇時間',?1750,?2020)
          ????fig?=?px.choropleth(df_co2[df_co2['year']?==?year],?locations="iso_code",
          ????????????????????????color="co2_per_capita",
          ????????????????????????hover_name="country",
          ????????????????????????range_color=(0,?25),
          ????????????????????????color_continuous_scale=px.colors.sequential.Reds)
          ????st.plotly_chart(fig,?use_container_width=True)
          而例如右上方的折線圖,同樣也是調(diào)用plotly.express模塊來實現(xiàn)的,其中多選框則是調(diào)用了streamlit模塊當中的multiselect方法,代碼如下
          with?col3:
          ????default_countries?=?['World',?'United?States',?'United?Kingdom',?'EU-27',?'China',?'Canada']
          ????countries?=?df_co2['country'].unique()
          ????selected_countries?=?st.multiselect('選擇國家或者區(qū)域性組織',?countries,?default_countries)
          ????df3?=?df_co2.query('country?in?@selected_countries')
          ????fig2?=?px.line(df3,?"year",?"co2_per_capita",?color="country")
          ????st.plotly_chart(fig2,?use_container_width=True)

          最后的成品如下圖所示:

          從上面繪制的圖表中我們能夠看到的是,美國以及加拿大這兩國家二氧化碳的排放量一直都很高,超過了包括歐盟、英國以及中國在內(nèi)的主要經(jīng)濟體。當然近些年各個國家的政府也對該問題相當?shù)闹匾暎朴喠讼鄬?yīng)的節(jié)能減排的應(yīng)對措施。
          本篇文章的全部源碼可在公眾號「簡說編程」后臺回復(fù)【代碼】獲取
          注意??】由于本號自動回復(fù)已經(jīng)設(shè)置滿了,所以本文源碼放在老表的小號簡說編程」中,點擊下方卡片可直達)

          點擊卡片關(guān)注我,回復(fù):代碼

          何找到我:

          瀏覽 76
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  我要看操逼片 | 日韩免费中文字幕A片 | www.欧美日韩 | 怡红院院大香蕉 | 日日骚av无码 |