Python绘制交通流折线图详情

 更新时间:2022年06月15日 10:28:15   作者:居安_  
这篇文章主要介绍了Python绘制交通流折线图详情,文章基于python的相关资料展开折线图绘制的实现流程,感兴趣的小伙伴可以参考一下

一、数据集下载

加州高速公路PEMS数据集

这里绘制PEMS04中的交通流量数据。该数据集中包含旧金山2018年1月1日至2月28日的29条道路上307个探测器每五分钟收集的数据。

二、折线图绘制

1、解压npz文件

npz是一种numpy文件存储的压缩格式,可使用numpy进行读取。

allow_pickle=True用于防止numpy版本过高带来的错误。

data.files查看压缩文件下的所有文件。

import numpy as np
data = np.load(数据集存放地址, allow_pickle=True)
print(data.files)

可以看到压缩文件下只有data一个文件:

通过 data['data'] 即可对该数据集进行读取。我们也可以查看一下该数据的维度。

print(data['data'].shape)

其维度如下:

16992 = 59天×24小时×12(每五分钟统计一次流量数据),307为探测器数量,3为特征数。

2、折线图绘制

数据中包含的三个特征为(交通流量,平均速度,平均占用率),取出绘图需要的第一个特征(这里只绘制其中一个探测器的)。

flow = data['data'][:, 0, 0]

 导入matplotlib包,通过pyplot来绘制最简单的折线图。

import matplotlib.pyplot as plt

由于希望观测到工作日的流量变化,我们将横坐标替换为周一至周日。旧金山2018年1月1日为周一。

绘制的全部代码如下:

import numpy as np
import matplotlib.pyplot as plt
data = np.load(文件路径, allow_pickle=True)
flow = data['data'][:, 0, 0]
print(len(flow))
week = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
x = []
for i in range(59):
    x.append(week[(i + 1) % 7])
y = []
sum = 0
for i in range(len(flow)):
    if i == 0 or (i + 1) % 288 != 0:
        sum += flow[i]
    else:
        y.append(sum)
        sum = 0
 
fig = plt.figure(figsize=(15, 5))   # 图片宽度设置的大一些
plt.title('traffic flow in San Francisco')
plt.xlabel('day')
plt.ylabel('flow')
plt.xticks(np.arange(59), x)
plt.plot(np.arange(59), y, linestyle='-')
fig.autofmt_xdate(rotation=45)  # x轴的刻度标签逆时针旋转45度
plt.show()

绘制结果如下:

文章所以大部分的KPI都会遵循“Mary's Peak”模式,比如说使用公共交通工具出行的情况、外卖点餐情况。从上图可以看出,这里的交通流量是遵循这一模式的。

到此这篇关于Python绘制交通流折线图详情的文章就介绍到这了,更多相关Python绘制折线图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 一文带你了解Python中Scikit-learn库的使用

    一文带你了解Python中Scikit-learn库的使用

    Scikit-learn是Python的一个开源机器学习库,它支持监督和无监督学习,本文主要来深入探讨一下Scikit-learn的更高级的特性,感兴趣的小伙伴可以了解下
    2023-07-07
  • python中os.stat().st_size、os.path.getsize()获取文件大小

    python中os.stat().st_size、os.path.getsize()获取文件大小

    本文介绍了使用os.stat()和os.path.getsize()函数获取文件大小,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • Python实现批量下载ts文件并合并为mp4

    Python实现批量下载ts文件并合并为mp4

    这篇文章主要为大家详细介绍了如何通过Python语言实现批量下载ts文件并合并为mp4视频的功能,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2023-06-06
  • 使用Python对零售商品进行数据分析

    使用Python对零售商品进行数据分析

    这篇文章主要为大家介绍了使用Python对零售商品进行数据分析详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Python创建模块及模块导入的方法

    Python创建模块及模块导入的方法

    这篇文章主要介绍了Python创建模块及模块导入的方法,实例分析了模块的定义、导入及模块属性的使用技巧,并附带说明了包的概念与用法,需要的朋友可以参考下
    2015-05-05
  • PyCharm接入DeepSeek实现AI编程的操作流程

    PyCharm接入DeepSeek实现AI编程的操作流程

    DeepSeek 是一家专注于人工智能技术研发的公司,致力于开发高性能、低成本的 AI 模型,接下来,我们把DeepSeek接入到PyCharm中,并利用其能力辅助我们进行代码开发,感兴趣的小伙伴跟着小编一起来看看吧
    2025-01-01
  • Python字符串和字典相关操作的实例详解

    Python字符串和字典相关操作的实例详解

    这篇文章主要介绍了Python字符串和字典相关操作的实例详解的相关资料,这里提供实例帮助大家学习理解这部分内容,需要的朋友可以参考下
    2017-09-09
  • tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this T

    tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU

    这篇文章主要介绍了tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this T的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • Python通过Geopandas实现地理空间数据可视化

    Python通过Geopandas实现地理空间数据可视化

    Geopandas是一个功能强大的Python库,它扩展了Pandas的功能,专门用于地理空间数据的处理和分析,下面我们来看看如何使用Geopandas进行地理空间数据可视化吧
    2025-03-03
  • 详解Python循环作用域与闭包

    详解Python循环作用域与闭包

    这篇文章主要介绍了Python循环作用域与闭包,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03

最新评论