Python应用实例(二)数据可视化(四)

这篇具有很好参考价值的文章主要介绍了Python应用实例(二)数据可视化(四)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


从网上下载数据,并对其进行可视化。网上的数据多得令人难以置信,大多未经仔细检查。如果能够对这些数据进行分析,就能发现别人没有发现的规律和关联。

访问并可视化的数据以两种常见格式存储:CSV和JSON。我们将使用Python模块csv来处理以CSV格式存储的天气数据,找出两个地区在一段时间内的最高温度和最低温度。然后,使用Matplotlib根据下载的数据创建一个图表,展示两个不同地区的温度变化:阿拉斯加州锡特卡和加利福尼亚州死亡谷。然后,使用模块json访问以JSON格式存储的地震数据,并使用Plotly绘制一幅散点图,展示这些地震的位置和震级。

1.CSV文件格式

要在文本文件中存储数据,一个简单方式是将数据作为一系列以逗号分隔的值(comma-separated values)写入文件。这样的文件称为CSV文件。例如,下面是一行CSV格式的天气数据:

"USW00025333","SITKA AIRPORT, AK US","2018-01-01","0.45",,"48","38"

这是阿拉斯加州锡特卡2018年1月1日的天气数据,其中包含当天的最高温度和最低温度,还有众多其他的数据。CSV文件对人来说阅读起来比较麻烦,但程序可轻松提取并处理其中的值,有助于加快数据分析过程。

我们将首先处理少量CSV格式的北京天气数据,将文件beijing_weather_07-2018_simple.csv复制到存储本章程序的文件夹中。

1.1 分析CSV文件头‘

csv模块包含在Python标准库中,可用于分析CSV文件中的数据行,让我们能够快速提取感兴趣的值。先来查看这个文件的第一行,其中的一系列文件头指出了后续各行包含的是什么样的信息:sitka_highs.py

  import csv

  filename = 'data/sitka_weather_07-2018_simple.csv'with open(filename) as f:
❷     reader = csv.reader(f)
❸     header_row = next(reader)
      print(header_row)

导入模块csv后,将要使用的文件的名称赋给filename。接下来,打开这个文件,并将返回的文件对象赋给f(见❶)。然后,调用csv.reader()并将前面存储的文件对象作为实参传递给它,从而创建一个与该文件相关联的阅读器对象(见❷)。这个阅读器对象被赋给了reader。

模块csv包含函数next(),调用它并传入阅读器对象时,它将返回文件中的下一行。在上述代码中,只调用了next()一次,因此得到的是文件的第一行,其中包含文件头(见❸)。将返回的数据存储到header_row中。如你所见,header_row包含与天气相关的文件头,指出了每行都包含哪些数据:

['STATION', 'NAME', 'DATE', 'PRCP', 'TAVG', 'TMAX', 'TMIN']

reader处理文件中以逗号分隔的第一行数据,并将每项数据都作为一个元素存储在列表中。文件头STATION表示记录数据的气象站的编码。这个文件头的位置表明,每行的第一个值都是气象站编码。文件头NAME指出每行的第二个值都是记录数据的气象站的名称。其他文件头则指出记录了哪些信息。当前,我们最关心的是日期(DATE)、最高温度(TMAX)和最低温度(TMIN)。这是一个简单的数据集,只包含降水量以及与温度相关的数据。你自己下载天气数据时,可选择涵盖众多测量值,如风速、风向以及详细的降水量数据。

1.2 打印文件头及其位置

为了让文件头数据更容易理解,将列表中的每个文件头及其位置打印出来:sitka_highs.py

  --snip--
  with open(filename) as f:
      reader = csv.reader(f)
      header_row = next(reader)for index, column_header in enumerate(header_row):
          print(index, column_header)

在循环中,对列表调用了enumerate()(见❶)来获取每个元素的索引及其值。(请注意,我们删除了代码行print(header_row),转而显示这个更详细的版本。)输出如下,指出了每个文件头的索引:

0 STATION
1 NAME
2 DATE
3 PRCP
4 TAVG
5 TMAX
6 TMIN

1.3 提取并读取数据

知道需要哪些列中的数据后,我们来读取一些数据。首先,读取每天的最高温度:sitka_highs.py

  --snip--
  with open(filename) as f:
      reader = csv.reader(f)
      header_row = next(reader)

      # 从文件中获取最高温度。
❶     highs = []for row in reader:
❸         high = int(row[5])
          highs.append(high)

  print(highs)

创建一个名为highs的空列表(见❶),再遍历文件中余下的各行(见❷)。阅读器对象从其停留的地方继续往下读取CSV文件,每次都自动返回当前所处位置的下一行。由于已经读取了文件头行,这个循环将从第二行开始——从这行开始包含的是实际数据。每次执行循环时,都将索引5处(TMAX列)的数据附加到highs末尾(见❸)。在文件中,这项数据是以字符串格式存储的,因此在附加到highs末尾前,使用函数int()将其转换为数值格式,以便使用。

highs现在存储的数据如下:

[62, 58, 70, 70, 67, 59, 58, 62, 66, 59, 56, 63, 65, 58, 56, 59, 64, 60, 60,
 61, 65, 65, 63, 59, 64, 65, 68, 66, 64, 67, 65]

提取每天的最高温度并将其存储到列表中之后,就可以可视化这些数据了。

1.4 绘制温度图表

为可视化这些温度数据,首先使用Matplotlib创建一个显示每日最高温度的简单图形,如下所示:sitka_highs.py

  import csv

  import matplotlib.pyplot as plt

  filename = 'data/sitka_weather_07-2018_simple.csv'
  with open(filename) as f:
      --_snip_—

  # 根据最高温度绘制图形。
  plt.style.use('seaborn')
  fig, ax = plt.subplots()
❶ ax.plot(highs, c='red')

  # 设置图形的格式。
❷ ax.set_title("2018年7月每日最高温度", fontsize=24)
❸ ax.set_xlabel('', fontsize=16)
  ax.set_ylabel("温度 (F)", fontsize=16)
  ax.tick_params(axis='both', which='major', labelsize=16)

  plt.show()

将最高温度列表传给plot()(见❶),并传递c='red’以便将数据点绘制为红色。(这里使用红色显示最高温度,用蓝色显示最低温度。)接下来,设置了一些其他的格式,如名称和字号(见❷),这些都在第15章介绍过。鉴于还没有添加日期,因此没有给[插图]轴添加标签,但ax.set_xlabel()确实修改了字号,让默认标签更容易看清❸。图显示了绘制的图表:一个简单的折线图,显示了阿拉斯加州锡特卡2018年7月的每日最高温度。

Python应用实例(二)数据可视化(四),python,信息可视化,python,数据分析

1.5 在图表中添加日期

现在,可以通过提取日期和最高温度并将其传递给plot(),对温度图形进行改进,如下所示:sitka_highs.py

  import csv
  from datetime import datetime

  import matplotlib.pyplot as plt

  filename = 'data/sitka_weather_07-2018_simple.csv'
  with open(filename) as f:
      reader = csv.reader(f)
      header_row = next(reader)

      # 从文件中获取日期和最高温度。
❶     dates, highs = [], []
      for row in reader:
❷         current_date = datetime.strptime(row[2], '%Y-%m-%d')
          high = int(row[5])
          dates.append(current_date)
          highs.append(high)

  # 根据最高温度绘制图形。
  plt.style.use('seaborn')
  fig, ax = plt.subplots()
❸ ax.plot(dates, highs, c='red')

  # 设置图形的格式。
  ax.set_title("2018年7月每日最高温度", fontsize=24)
  ax.set_xlabel('', fontsize=16)
❹ fig.autofmt_xdate()
  ax.set_ylabel("温度 (F)", fontsize=16)
  ax.tick_params(axis='both', which='major', labelsize=16)

  plt.show()

我们创建了两个空列表,用于存储从文件中提取的日期和最高温度(见❶)。然后,将包含日期信息的数据(row[2])转换为datetime对象(见❷),并将其附加到列表dates末尾。在❸处,将日期和最高温度值传递给plot()。在❹处,调用fig.autofmt_xdate()来绘制倾斜的日期标签,以免其彼此重叠。图显示了改进后的图表。

Python应用实例(二)数据可视化(四),python,信息可视化,python,数据分析文章来源地址https://www.toymoban.com/news/detail-572562.html

到了这里,关于Python应用实例(二)数据可视化(四)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python如何实现点云可视化交互——Open3D实例教程(获取所选点的信息)保姆级教学

    Open3D是目前python中可用的用于 3D 数据处理的现代库,可以对点云、网格等三维数据进行读取、采样、配准、可视化等操作。其中对点云等三维模型进行可视化的功能在Python中显得非常方便。 在通过对官方文档的研究之后作者发现在Open3D的多种可视化函数中出现了返回所选点

    2024年02月02日
    浏览(48)
  • Python招聘信息爬虫数据可视化分析大屏全屏系统

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,学习后应对毕业设计答辩。 项目配有对应开发文档、

    2024年04月09日
    浏览(48)
  • Python采集二手房源数据信息并做可视化展示

    前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 环境使用: Python 3.8 jupyter -- pip install jupyter notebook pycharm 也可以 模块使用: requests pip install requests 数据请求模块 parsel pip install parsel 数据解析模块 csv 内置模块 第三方模块安装: win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名

    2024年02月10日
    浏览(29)
  • 【Python爬虫+数据分析】采集电商平台数据信息,并做可视化演示

    随着电商平台的兴起,越来越多的人开始在网上购物。而对于电商平台来说,商品信息、价格、评论等数据是非常重要的。因此,抓取电商平台的商品信息、价格、评论等数据成为了一项非常有价值的工作。本文将介绍如何使用Python编写爬虫程序,抓取电商平台的商品信息、

    2024年02月08日
    浏览(44)
  • 微博数据可视化分析:利用Python构建信息图表展示话题热度

    1. 引言 随着社交媒体的迅速发展,微博已成为人们交流观点、表达情感的重要平台之一。微博评论数据蕴含着丰富的信息,通过对这些数据进行分析和可视化,我们可以深入了解用户对特定话题的关注程度和情感倾向。本文将介绍如何利用Python进行微博评论数据的准备、探索

    2024年02月20日
    浏览(44)
  • 利用Python进行数据可视化Plotly与Dash的应用【第157篇—数据可视化】

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 数据可视化是数据分析中至关重要的一环,它能够帮助我们更直观地理解数据并发现隐藏的模式和趋势。在Python中,有许多强大的工具可以用

    2024年04月14日
    浏览(48)
  • 对利用Python爬取到的房价信息做数据可视化(附完整代码)

          大家好,我是带我去滑雪,每天教你一个小技巧! 本文利用Python爬取到的房价信息做数据可视化,爬取数据的文章见: (利用Python爬取房价信息(附代码)_用python爬取房价数据_带我去滑雪的博客-CSDN博客)       所爬取的指标有小区名称、房屋位置、房屋户型、房屋面

    2024年02月02日
    浏览(34)
  • 【Python爬虫+数据分析】采集电商平台数据信息,并做可视化演示(带视频案例)

    随着电商平台的兴起,越来越多的人开始在网上购物。而对于电商平台来说,商品信息、价格、评论等数据是非常重要的。因此,抓取电商平台的商品信息、价格、评论等数据成为了一项非常有价值的工作。 接下来就让我来教你 如何使用Python编写爬虫程序,抓取电商平台的

    2024年02月11日
    浏览(50)
  • 信息管理毕设分享(含算法) python大数据房价预测与可视化系统

    # 0 简介 今天学长向大家介绍一个适合作为毕设的项目 毕设分享 python大数据房价预测与可视化系统 项目获取: https://gitee.com/sinonfin/algorithm-sharing 1.需求描述 对于数据挖掘工程师来说,有时候需要抓取地理位置信息,比如统计房子周边基础设施信息,比如医院、公交车站、写

    2024年02月03日
    浏览(33)
  • 实例:【基于机器学习的NBA球员信息数据分析与可视化】

    数据集共有342个NBA球员样本,包含38个特征,即342行×38列。对这些数据进行集成和预处理。 利用python语言,设计合适的机器学习算法。找出球员在场时对球队比赛获胜的贡献大小,最能反映球员的综合实力的特征。 算法过程及结果的设计合适的可视化图像,将所设计的算法

    2024年02月08日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包