如何对经度和纬度进行分箱并绘制分箱的密度?
Posted
技术标签:
【中文标题】如何对经度和纬度进行分箱并绘制分箱的密度?【英文标题】:How to bin longitude and latitude and plot the density of the bins? 【发布时间】:2020-10-05 16:26:40 【问题描述】:我正在测试下面的代码。
import numpy as np
import pandas as pd
#import matplotlib.pyplot as plt
#plt.style.use('seaborn-white')
df = pd.read_csv('C:\\Users\\ryans\\OneDrive\\Desktop\\business.csv')
X = df[['latitude','longitude','address']].copy()
X['latitude'].value_counts()
X['longitude'].value_counts()
结果:
-115.123695 168
-111.940325 167
-115.171130 158
-111.821087 157
-115.224485 156
-82.032188 1
-89.383229 1
-89.533178 1
-81.475399 1
-111.857103 1
下一步...
X['lat'] = pd.cut(df['latitude'], bins=10)
X['lon'] = pd.cut(df['longitude'], bins=10)
print(X)
结果:
latitude longitude ... lat lon
0 33.522143 -112.018481 ... (33.187, 35.014] (-115.536, -111.235]
1 43.605499 -79.652289 ... (42.252, 44.062] (-81.428, -77.17]
2 35.092564 -80.859132 ... (35.014, 36.824] (-81.428, -77.17]
3 33.455613 -112.395596 ... (33.187, 35.014] (-115.536, -111.235]
4 35.190012 -80.887223 ... (35.014, 36.824] (-81.428, -77.17]
... ... ... ... ...
192604 36.213732 -115.177059 ... (35.014, 36.824] (-115.536, -111.235]
192605 44.052658 -79.481850 ... (42.252, 44.062] (-81.428, -77.17]
192606 33.679992 -112.035569 ... (33.187, 35.014] (-115.536, -111.235]
192607 33.416137 -111.735743 ... (33.187, 35.014] (-115.536, -111.235]
192608 36.107267 -115.171920 ... (35.014, 36.824] (-115.536, -111.235]
现在,我正在尝试可视化这些坐标箱,并绘制箱的密度。因此,计数越高,颜色越强烈。这可能吗?
我在网上找到了几个示例,它们展示了如何创建经度和纬度数据的热图。这是唯一的做法,还是可以对这些数据点进行分箱?
【问题讨论】:
热图对于这类数据来说似乎是一个很好的选择。 【参考方案1】:下面的代码做得很好!
import pandas as pd
import folium
from folium.plugins import HeatMap
df = pd.read_csv('C:\\your_path\\business.csv')
df.head(3)
max_amount = float(df['review_count'].max())
hmap = folium.Map(location=[42.5, -75.5], zoom_start=7, )
hm_wide = HeatMap( list(zip(df.latitude.values, df.longitude.values, df.review_count.values)),
min_opacity=0.2,
max_val=max_amount,
radius=17, blur=15,
max_zoom=1,
)
hmap.add_child(hm_wide)
我需要处理其中一些颜色的不透明度和强度,但这个概念绝对是有道理的。
【讨论】:
没有解释review_count
是什么或如何计算它。底部也没有使用value_counts
,所以不确定这段代码是如何工作的。以上是关于如何对经度和纬度进行分箱并绘制分箱的密度?的主要内容,如果未能解决你的问题,请参考以下文章
评分卡应用 - 利用Toad进行有监督分箱(卡方分箱/决策树分箱)