IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 不到100行Python代码教你做出精美炫酷的可视化大屏 -> 正文阅读

[Python知识库]不到100行Python代码教你做出精美炫酷的可视化大屏

“碳达峰、碳中和”是2021年政府在不断强调与非常重视的事儿,那什么是“碳达峰”、什么又是“碳中和”呢?这里小编来为大家科普一下,所谓的“碳达峰”指的是在某一时间点,二氧化碳的排放不再达到峰值,之后逐步回落。

64004b2d2c8db3f75131d6ebbd481245.png

而“碳中和”也就意味着企业、个体与团体在一定时间内直接或间接产生的温室气体排放总量,通过植树造林、节能减排等形式,抵消自身产生的二氧化碳排放,实现二氧化碳的“零排放”。

今天小编就用Python来制作一张可视化大屏,让大家来感受一下近百年来二氧化碳排放的趋势以及给我们所居住的环境造成了什么样的影响。

介绍数据来源

本地可视化大屏中引用的数据来自于由英国牛津大学知名教授创办的网站“用数据看世界(Our World in Data”,里面收入了各个学科的数据,包括卫生、食品、收入增长和分配、能源、教育、环境等行业进行了分析与可视化展示,十分地全面,并且当中的元数据开放在Github当中

15c9dc44096e2a656edc479cb77ac498.png

导入模块并且读取数据

我们导入需要用到的模块

import?streamlit?as?st
import?plotly.express?as?px
import?pandas?as?pd

我们这次是用到streamlit模块来制作可视化大屏,该模块是基于Python的可视化工具,最初开发出来的目的是给机器学习和数据科学团队使用的。同时我们用plotly.express模块来绘制各种图表,因此图表是具备交互性的,pandas模块来读取数据

@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

可视化大屏的制作

然后我们来制作整个可视化大屏,首先我们先确认好可视化大屏的布局,如下图所示

ac79d4e7d5807a3a4214365919004964.png

然后我们针对每一篇布局来编写代码,首先看到的是标题部分,我们通过streamlit模块当中的markdown方法来实现即可

st.markdown()

然后根据上面的布局设计,我们这么来编写代码

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("""##?二氧化碳和全球变暖之间的关系""")

with?col5:
????st.subheader("?副标题一?")
????...

with?col6:
????st.subheader("?副标题二?")
????...

我们这里使用columns方法来将页面均匀的分成若干列,并且给定特定的宽度,当然每列之间还需要留一点空隙,从美观程度上来考虑,因此才有了变量space对应的是宽度1的空隙

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

然后我们针对分割开来的每个区域进行图表的绘制,例如左上方的世界地图,我们用plotly.express当中的choropleth方法来绘制,另外我们添加了时间轴,通过调用streamlit模块当中的slider方法来实现

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)

而例如右上方的折线图,同样也是调用plotly.express模块来实现的,其中多选框则是调用了streamlit模块当中的multiselect方法,代码如下

with?col3:
????default_countries?=?['World',?'United?States',?'United?Kingdom',?'EU-27',?'China',?'Canada']
????countries?=?df_co2['country'].unique()
????selected_countries?=?st.multiselect('选择国家或者区域性组织',?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)

最后的成品如下图所示:

d633fb65b2e5f5b4a53e2d99c00eb347.gif

从上面绘制的图表中我们能够看到的是,美国以及加拿大这两国家二氧化碳的排放量一直都很高,超过了包括欧盟、英国以及中国在内的主要经济体。当然近些年各个国家的政府也对该问题相当的重视,制订了相对应的节能减排的应对措施。

本篇文章的全部源码可在公众号后台回复【碳中和】获取

NO.1

往期推荐

Historical articles

2000字详解 当Pandas遇上超大规模的数据集该如何处理呢?

3000字/16张炫酷动态图,推荐一款好用到爆的Python可视化利器

全文1W字,20个经典函数细说Pandas中的数据读取与存储,强烈建议收藏

6000字干货要点总结,Python爬虫利器Selenium从入门到进阶

分享、收藏、点赞、在看安排一下?

55272bfa7577c4b4ba4f2858f112b272.gif

01421acf86fc9fcb1faaaba9c495f9b6.gif

a46a29e8662a185e00cc94ad9b6b9cdb.gif

ad543debb5f6814ee835f4b3dbe14a17.gif

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章           查看所有文章
加:2021-12-21 17:36:03  更:2021-12-21 17:36:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 4:41:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码