参考了高楠同学的帖子,纯粹用来学习的哈。链接如下:https://www.zhihu.com/question/33783546/answer/775946401
在这里,主要通过folium,实现数据的可视化。这是一个小众库,不过应用起来有些函数,还是得读懂。不得不佩服Python的优势。可视化还有一个很重要的库,即pyecharts,今后将学会运用,其Github上的链接如下:
https://github.com/pyecharts/pyecharts/

这里对这个流程做一下梳理,也是一个复习的过程。
导入库,看下版本,导入是否正常:

import pandas as pd
import numpy as np
import folium
folium.__version__
#创建世界地图
world_map=folium.Map()
world_map

通过经纬度实现地图的载入,此处显示一下深圳地图:

#确定地理位置,以经纬度进行定位。本站所位于旧金山,故以旧金山为准。
latitude=37.77
longitude=-122.42
#显示该位置,zoom_start参数用于缩放大小的控制,tiles用于控制风格,有OpenStreetMap,Stamen Terrain,Stamen Toner等
San_map=folium.Map(location=[latitude,longitude],zoom_start=12)
San_map
#测试一下深圳地图看一下效果
SZ_Latitude=22.54
SZ_Longitude=114.0654
#SZ_loc=[SZ_Latitude,SZ_Longitude]
SZ_Map=folium.Map(location=[SZ_Latitude,SZ_Longitude],zoom_start=12)
SZ_Map

结果显示如下:

#读取数据
San_data=pd.read_excel('D:/Police_ncidents2016.xlsx')
San_data.head(1)

下面对各种范围进行一下分类统计:

S1=San_data['Category'].value_counts()
S2=San_data['DayOfWeek'].value_counts()
S3=San_data['PdDistrict'].value_counts()
print(S1)
print(S2)
print(S3)

显示如下:

%matplotlib inline
import matplotlib.pyplot as plt
L=list(San_data["DayOfWeek"])
plt.figure(figsize=(10,6))
plt.hist(L,bins=16,color="red")
plt.xlabel("Day",fontsize=18)
plt.ylabel("Times of Crime",fontsize=18)
plt.title("Dis",fontsize=24)

了解到相应的属性数据后,我们通过调用folium的函数进行可视化调置,如下:

#现在可以对前211条数据进行显示了
limit=211
San_data=San_data.iloc[0:limit,:]#利用iloc可对前211项数据进行取值,San_data已更新#事故区域,DataFrame型
incidents=folium.map.FeatureGroup() #将211个事件放进在该区域数组给予显示
for lat,lng, in zip(San_data.Y,San_data.X):incidents.add_child(folium.CircleMarker([lat,lng],radius=10,color='yellow',fill=True,fill_color='red',fill_opacity=0.4))#将事故显示在地图上
San_map.add_child(incidents)

库里对应着地图的函数。整体思路:创建一个事件集群MarkerCluster(),通过add_to(map)将其标记到地图上,然后通过for循坏将每一个 单体事件对象Marker放到Cluster中。

#统计一下相关的信息,用pluggins实现
from folium import plugins
map=folium.Map(location=[latitude,longitude],zoom_start=12)incidents=plugins.MarkerCluster().add_to(map)  #为数据的事件标记集群对象
type(incidents)#将数据入入上面的集群对象
for lat,lng,label, in zip(San_data.Y,San_data.X,San_data.Category):folium.Marker(location=[lat,lng],icon=None,popup=label,).add_to(incidents)map

伸缩图像会按地图的相应区域大小聚类,自动调节,由Category实现。

对数据进行统计:

showdata=pd.DataFrame(San_data['PdDistrict'].value_counts())
showdata.reset_index(inplace=True)
showdata.rename(columns={'index':'Neighborhood','PdDistrict':'count'},inplace=True)
showdata

利用网上的边界数据对可视化进行编辑,如下:

#从网上找来的数据,对San市的边界进行可视化。
import json
import requests
url = 'https://cocl.us/sanfran_geojson' #通过URL的方式读取边界文件的尝试
san_geo = f'{url}'
g_map=folium.Map(location=[37.77,-122.4],zoom_start=12) #边界文件作为GeoJson的第一个参数传入,GeoJson还有style_function参数。通过匿名函数给出。folium.GeoJson(san_geo,style_function=lambda feature:{'fillColor':'#ffff00','color':'black','weight':2,'dashArray':'5,5'}).add_to(g_map)

上述代码可完成区域分界。

我们希望通过颜色的深浅对犯罪程度做一下直观的显示,这种操作在EXCEL也是常有的(渐变),注意一下颜色参数,其他可以通过查看源代码仔细研究:

#用颜色深浅定义多少,程度,类似于excel
m_color=folium.Map(location=[37.77,-122.74],zoom_start=10)
folium.Choropleth(geo_data=san_geo,data=showdata,columns=['Neighborhood','count'],key_on='feature.properties.DISTRICT',fill_color='YlOrRd',     #注意这里的参数,小写的L与数字0fill_opacity=0.7,line_opacity=0.2,highlight=True,legend_name='Crime Counts in San Fran').add_to(m_color)
m_color

下面就是结果了,犯罪的区域一目了然,是不是很赞?代码也相对简单,可移植。保留着,以后如果有牵涉到经纬度的数据,灵活运用即可。

旧金山犯罪数据的可视化项目相关推荐

  1. 数据可视化项目落地复盘

    近期落地了工作中的数据可视化项目,今天原创复盘下这中间的历程. 在复盘前,首先一个问题:数据可视化到底是不是一个需求? 提出这个问题的原因: 数据可视化只是让数据更直观,是数据的另一种展现形式.这种形 ...

  2. 游戏数仓分析(三)SpringBoot项目对数据进行可视化展示,每日注册用户

    在游戏数仓分析(二)SpringBoot项目对数据进行可视化展示中已经做出一定的演示:https://georgedage.blog.csdn.net/article/details/10327840 ...

  3. 基于java web和echarts的数据可视化项目

    EchartDemo 项目介绍 基于java web和echarts的数据可视化项目 主要分析浙江省各市区的gdp和固定资产投资.以及房产数据,数据源浙江省经济社会发展统计,数据经过整理后插入数据库中 ...

  4. 波士顿犯罪数据时空分析及可视化

    文章目录 前言 一.数据描述 二.数据预处理 三.犯罪时空分析 1.犯罪类型分析 2.犯罪时间特征分析 (1)基于年维度 (2)基于月维度 (3)基于日维度 3.犯罪空间特征分析 四.基于犯罪空间理论 ...

  5. Hadoop+hive+flask+echarts大数据可视化项目之hive环境搭建与系统数据的分析思路

    Hadoop+hive+flask+echarts大数据可视化项目(四) --------------hive环境搭建与系统数据的分析思路---------------- 关注过Hadoop+hive ...

  6. 【Dash搭建可视化网站】项目4: 利用Dash Plotly实现数据图表可视化

    手动反爬虫,禁止转载:原博地址 https://blog.csdn.net/lys_828/article/details/122073681(CSDN博主:Be_melting) 知识梳理不易,请尊 ...

  7. 数据可视化项目【三】数据切换效果模块

    系列文章目录 第一章:数据可视化项目基础配置 第二章:数据可视化项目Echarts图表模块 第三章:数据可视化项目数据切换效果模块 文章目录 系列文章目录 监控区域-效果 切换功能: 动画功能: 销售 ...

  8. echarts数据可视化项目经验积累

    echarts数据可视化项目经验积累 echarts图表在初始化时可以在mounted中. // An highlighted block mounted() {this.myChart = this ...

  9. 数据可视化项目【一】基础配置

    系列文章目录 第一章:数据可视化项目基础配置 第二章:数据可视化项目Echarts图表模块 第三章:数据可视化项目数据切换效果模块 文章目录 系列文章目录 项目介绍: 项目展示: 技术分析: 基础布局 ...

最新文章

  1. 我是这样入侵 Hacking Team 的
  2. javascript里的几种常见的数组方法
  3. ALGO-147_蓝桥杯_算法训练_4-3水仙花数
  4. Oracle体系结构一
  5. 一个不错的架构图:基于SpringCloud的微服务项目
  6. PDF打开时显示“正在准备文档以供阅读
  7. Android 启动优化说明、黑白屏处理
  8. Monash call (莫纳什来电) -开篇
  9. 用python的turtle画圆 转角度前进_使用python实现画出一段给定角度的近似圆弧
  10. auto uninstaller 9.3.28下载安装教程
  11. QuickSDK-手游出海服务器接入技巧
  12. 山东省2022 年专升本 计算机大纲(信息安全)
  13. java 网上书店设计与实现_(JAVA)网上书店的设计与实现
  14. HashMap如何解决哈希冲突?
  15. 视频聊天的java代码
  16. android设置渐变背景,Android LinearLayout渐变背景
  17. 前端请柬框架_如何用h5做邀请函 h5邀请函是什么意思
  18. 关于无障碍适配的笔记
  19. QCY蓝牙耳机恢复双耳模式
  20. css中间镂空,css3如何实现遮罩层镂空效果 css3遮罩层镂空效果的多种实现方法

热门文章

  1. 中国python之父是谁-Python之父退休
  2. 拆解Mate 30 Pro,供应商一览无余!
  3. 计算机视觉——图像去噪及直方图均衡化(图像增强)
  4. THE TENTH DAY
  5. DarkMode(4):css滤镜 颜色反转实现深色模式
  6. win10启动项_Win10系统上安装macOS,不破坏Win10也不丢文件,双系统非虚拟机
  7. Themeleaf基本使用
  8. Themeleaf + checkbox + Mybatis 实现批量删除
  9. 5种暗黑系艺术效果lr预设
  10. 洛谷1184的map解法