1. 引言

原始形式的数据对大多数人来说可能都是枯燥乏味的,但是如果掌握正确的可视化工具,给人的印象就会变得引人入胜。本文通过实际例子,让我们利用数据可视化工具来探索不一样的数据体验。

闲话少说,我们直接开始吧!

2. 举个栗子

让我们从创建一个数据集开始,假设以下数据集包含2010-2020年 Newport市的碳排放、空气质量指数、绿化率、平均温度和降雨量等信息。

Year,AQI,Carbon_Emissions,Green_Space_Ratio,Rainfall,Temperature
2010,70,7.3,25.0,50,55
2011,72,7.5,25.5,47,57
2012,75,7.7,26.0,45,58
2013,77,7.9,26.5,44,58
2014,79,8.1,27.0,43,59
2015,80,8.3,27.5,42,60
2016,82,8.5,28.0,41,61
2017,85,8.7,28.5,40,62
2018,87,8.9,29.0,39,63
2019,90,9.1,29.5,38,64
2020,92,9.3,30.0,37,65

该数据集展示了 Newport市各种环境因素如何随时间发生变化的原始数据。我们可以直观地看到十多年间该市的碳排放、空气质量、绿化率和平均温度的趋势。最后,我们可以通过可视化工具,来将所有这些因素结合在一起展示出来。

3. 了解受众

了解受众是有效讲述数据的关键。让我们想象一下,我们的听众是一群环境政策制定者。他们对环境因素随时间的变化颇感兴趣,所以我们需要以突出这些趋势的方式呈现我们的数据。

对于我们的第一个可视化,我们不妨来创建一个折线图,显示 Newport市(本例中的虚构城市)多年来空气质量指数(AQI)的变化。折线图是显示一段时间内趋势的绝佳选择,而且很容易被广大观众所理解。

import pandas as pd
import plotly.graph_objects as go
from plotly.subplots import make_subplots# Load the data
df = pd.read_csv('environment_data.csv')# Create a line chart of AQI over the years
fig1 = go.Figure()
fig1.add_trace(go.Scatter(x=df['Year'], y=df['AQI'], mode='lines', name='AQI', line=dict(color='red')))
fig1.update_layout(title='Newport - Air Quality Index Over Time', xaxis_title='Year', yaxis_title='Air Quality Index (AQI)')
fig1.show()

运行结果如下:

上图中我们将每年的空气质量指数进行了可视化,强调它是如何随着时间的推移而变化的。简单的图表,但有效——我们可以清楚地看到,表现的情况是污染逐年增加。

4. 使用正确的可视化

不同类型的可视化服务于不同的目的。对于我们的第二个可视化,使用技巧1中相同库和CSV文件,让我们创建一个散点图来显示碳排放和空气质量指数(AQI)之间的关系。

# Create a scatter plot of Carbon Emissions vs AQI
fig2 = go.Figure()
fig2.add_trace(go.Scatter(x=df['Carbon_Emissions'], y=df['AQI'], mode='markers', name='Carbon Emissions vs AQI', marker=dict(color='red')))
fig2.update_layout(title='Newport - Carbon Emissions vs Air Quality Index', xaxis_title='Carbon Emissions (million metric tons)', yaxis_title='Air Quality Index (AQI)')
fig2.show()

使用散点图可以使我们能够研究碳排放和空气质量之间是否存在可能的相关性,为决策者提供有价值的决策见解。运行结果如下:

在这个例子中,可视化显示了两者之间的线性递增关系,所以极大可能二者存在一定的因果关系。

5. 突出显示重点

我们的第三个可视化将是一个条形图,显示多年来绿化比例的变化。这可以突显城市规划和发展政策对绿化的影响。使用提示1中的相同库和CSV文件,条形图代码如下:

# Create a bar chart of Green Space Ratio over the years
fig3 = go.Figure()
fig3.add_trace(go.Bar(x=df['Year'], y=df['Green_Space_Ratio'], name='Green Space Ratio', marker=dict(color='green')))
fig3.update_layout(title='Newport - Green Space Ratio Over Time', xaxis_title='Year', yaxis_title='Green Space Ratio (%)')
fig3.show()

结果如下:

这张条形图强调了绿化率多年来的增长,这是对城市可持续性感兴趣的政策制定者的一个重要观点。

6. 用数据讲故事

对于我们的最终可视化,我们将创建一个面积图,以显示多年来平均温度和降雨量的变化。这可以深入了解 Newport市潜在的气候变化影响。使用提示1中的相同库和CSV文件,面积图代码:

# Create a stacked area chart of Average Temperature and Rainfall over the yearsfig4 = make_subplots(specs=[[{"secondary_y": True}]])
fig4.add_trace(go.Scatter(x=df['Year'], y=df['Temperature'], mode='lines', name='Temperature', stackgroup='one'), secondary_y=False)
fig4.add_trace(go.Scatter(x=df['Year'], y=df['Rainfall'], mode='lines', name='Rainfall', stackgroup='one'), secondary_y=True)
fig4.update_layout(title='Newport - Temperature and Rainfall Over Time', xaxis_title='Year', yaxis_title='Temperature (°F) / Rainfall (inches)')
fig4.show()

这张叠加面积图显示了两个因素随时间变化的变量,使我们能够看到潜在的相关性和趋势。

在这种情况下,这些数据告诉我们一个非常清楚的故事,即多年来温度和降雨量是如何同时变化的。一个温度在随时间上升的同时,降雨量却在随时间而下降。

7. 图形可视化仪表板

现在我们已经有了所有的可视化,接着让我们使用Python中的Dash库将它们合并到一个单独的面板中。

import dash
from dash import dcc
from dash import html# Load the data
df = pd.read_csv('environment_data.csv')#put all of our chart code here (fig1, fig2, fig3, fig4), remove ALL show() statementsapp = dash.Dash(__name__)
app.layout = html.Div([html.H1('New York City Environmental Data Dashboard'),html.Div([dcc.Graph(figure=fig1),dcc.Graph(figure=fig2),], style={'display': 'flex'}),html.Div([dcc.Graph(figure=fig3),dcc.Graph(figure=fig4),], style={'display': 'flex'}),
])
if __name__ == '__main__':app.run_server(debug=True)

在这段代码中,我们主要使用了Dash库,一个用于构建分析web应用程序的Python框架,我们可以来创建一个包含四个可视化的仪表板。将其排列成两行,每行有两个子图。如下:

超级棒并且超级容易实现, 本文从我们的简单数据集中告诉我们4个有用且引人注目的可视化效果,所有这些都显示在一个易于访问的仪表板中!

8. 总结

通过数据可视化工具来取得引人注目的效果。这是关于了解数据背后隐藏的信息,通过了解受众,并不断接收和实施反馈,以不断改进可视化效果。本文一步一步通过具体数据例子来讲解了如何取得引入注目的可视化效果的完整步骤,并给出了相应的代码示例。

您学废了嘛?

Python数据可视化小结相关推荐

  1. ​Python数据可视化工具怎么选?深度评测5款实用工具

    来源:早起Python 本文约3100字,建议阅读9分钟 本文通过真实绘图,为你深度测评Python五大数据可视化库. [ 导读 ]相信很多读者学习Python就是希望做出各种酷炫的可视化图表,当然你 ...

  2. 可视化工具不知道怎么选?深度评测5大Python数据可视化工具

    相信很多读者学习Python就是希望作出各种酷炫的可视化图表,当然你一定会听说过Matplotlib.Pyecharts.Seaborn.Plotly.Bokeh这五大工具,本文就将通过真实绘图来深度 ...

  3. 每日一课 | Python数据可视化—Matplotlib初体验

    04. Matplotlib初体验 大家好,我是小C,上期给大家分享--Python数据可视化-如何做好启动准备(小白必读) 本期分享内容:Python数据可视化-Matplotlib初体验 本期小C ...

  4. 每日一课 | Python数据可视化—认识坐标系

    05. 重新认识坐标系 大家好,我是小C,上期给大家分享--Python数据可视化-Matplotlib初体验 本期分享内容:Python数据可视化-Matplotlib初体验 本期小C邀请的是齐伟( ...

  5. Python数据可视化 | 6、基于Sesborn探索变量间的关系

    目录 绘制线性回归模型 拟合不同模型 残差图 变量间的条件关系探索 控制图片的大小和形状 小结 数据变量之间的关联性,主要针对定量数据而言: 数据的分布问题也是主要针对定量数据: 分组问题及组间问题里 ...

  6. python数据可视化利用_利用pyecharts实现python数据可视化

    **python 利用pyecharts实现python数据可视化 **web pyecharts是一种交互式图表的表达方式. pyecharts是一款将python与echarts结合的强大的数据可 ...

  7. 《Python数据可视化编程实战》——5.5 用OpenGL制作动画

    本节书摘来异步社区<Python数据可视化编程实战>一书中的第5章,第5.5节,作者:[爱尔兰]Igor Milovanović,更多章节内容可以访问云栖社区"异步社区" ...

  8. 超硬核的 Python 数据可视化教程!

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:机器学习算法那些事 Python实现可视化的三个步骤: ...

  9. php数据库查询中文方块,解决Python数据可视化中文部分显示方块问题

    一.问题 代码如下,发现标题的中文显示的是方块 import matplotlib import matplotlib.pyplot as plt fig = plt.figure() ax = fi ...

最新文章

  1. Windows Phone 7 Tip (5) -- App liftcycle
  2. 可能是全网最全,JAVA日志框架适配/冲突解决方案,可以早点下班了
  3. R语言字符串处理函数
  4. C++ fscanf函数分割读取文本文件
  5. matlab imadjust 用 opencv改写
  6. php 注册回调函数,PHP回调函数
  7. 第六章 深度学习(中下)
  8. JLabel标签文字换行
  9. ARC132D-Between Two Binary Strings【贪心】
  10. java volatile 基本类型_Java中Volatile关键字详解(转)
  11. Linux的ping用python,python与linux中的非特权ping IPPROTO_ICMP
  12. Objective-c 中 nil, Nil, NULL和NSNull的区别
  13. php 小说采集系统,YGBOOK小说采集系统 php版 v1.4
  14. 这几个好用的简单流程图模板,你可不能错过
  15. bzoj3717 [PA2014]Pakowanie(状压dp+贪心)
  16. JMS消息服务 API解析
  17. 加解密技术基本使用指南(Base64、Hex、AES、SM4、RSA 算法)
  18. 机械硬盘通过USB外接到电脑,显示不出来
  19. PnPUtil (PnPUtil.exe) 是一个命令行工具,使管理员可以执行以下操作驱动程序包
  20. php做引流脚本,自动引流脚本你知道是怎么实现的自动化引流?

热门文章

  1. 我的投资案例-序-继往开来的一篇
  2. Normalizing Flows (NF) - 流模型 - 研究方向
  3. Vundle的介绍及安装
  4. 静心学习python有感
  5. 树莓派zero+mysql_树莓派zero初步调试
  6. 联想电脑如何进入BIOS
  7. xlc的64编译模式
  8. java 骆驼命名_菜鸟笔记:java变量命名及峰驼式命名法
  9. 基于DAC0832的直流电机控制系统
  10. IPv4、IPv6地址、组播地址及子网子划分详解二子网划分