这篇教程手把手教你用r语言处理地理数据。从安装环境到画出第一个地图。彻底解决你数据对不上坐标的焦虑。
我是老张,做了十年运营,天天跟地图打交道。之前最头疼的就是Excel里的经纬度。导进系统全是乱码。或者位置偏移个几百米。客户直接炸毛。
那天凌晨三点,我盯着屏幕发呆。手里咖啡都凉了。突然意识到,靠肉眼核对数据太蠢了。必须上代码。
说干就干。这次我选了r语言。为啥?因为它是开源的。社区强大。特别适合搞这种 messy 的数据清洗。
第一步,安装。别嫌麻烦。去官网下载R。再装RStudio。这俩玩意儿必须成套买。就像牙膏和牙刷。
装好后。打开控制台。输入 install.packages("tidyverse")。回车。等待进度条跑完。这里容易报错。通常是网络问题。换个镜像源就好。比如清华源或者阿里云源。速度飞快。
接下来是重头戏。geo数据分析。很多人以为这是高端黑科技。其实就是简单的加减乘除加坐标变换。
我手头有一份城市门店数据。有经纬度。有销售金额。我想看看哪里卖得好。哪里是空白区。
读取数据用 read_csv。记得指定编码是UTF-8。不然中文全是问号。尴尬死。
library(tidyverse)
df <- read_csv("store_data.csv", locale = locale(encoding = "UTF-8"))
这时候数据是散乱的。需要用 sf 包。把经纬度转化成几何对象。这一步叫投影转换。千万别跳过。不转换的话。画出来的地图会扭曲变形。像被拉伸的面条。
library(sf)
df_sf <- st_as_sf(df, coords = c("longitude", "latitude"), crs = 4326)
这里有个坑。很多人crs选错了。4326是WGS84标准。 GPS数据通常都是这个。如果你用别的代码。点位会飘到海里去。
数据准备好。开始画图。我用 ggplot2。因为它好看。而且灵活。
ggplot() +
geom_sf(data = df_sf, aes(color = sales)) +
theme_minimal()
简单三行代码。一张彩色地图出来了。红色代表销售高。蓝色代表低。一眼就能看出问题。原来北方三个区的店。颜色都蓝得快发黑了。
赶紧打电话问区域经理。结果是系统BUG。数据漏传了三个月。幸亏我早发现。
这就是geo数据分析的魅力。它不是冷冰冰的数字。而是直观的业务洞察。
有人问。Python不也行吗?确实。但R在处理统计推断和可视化结合上。更有优势。特别是搞学术研究或者传统行业转型。R的生态更完善。
还有个小技巧。如果你数据量极大。百万级行。用 ggplot2 会卡。这时候换 plotly。做成交互式地图。鼠标悬停显示详情。老板看了直点头。
library(plotly)
ggplotly(p)
记得给图片加 alt 文字。这样视障用户也能通过阅读器听到描述。比如“显示某城市门店销售热度分布图”。这也是社会责任吧。
最后总结一下。别被技术名词吓倒。r语言地理分析其实很亲民。多调包。多报错。多试错。你自然就通了。
我昨晚又改了几个bug。头发掉了一把。但看到最终报告被CEO表扬。值了。
希望这篇经验分享能帮到正卡在坐标转换上的你。别怕代码报错。那是它在和你说话呢。
对了。刚才敲代码时候有点急。把 library 拼成了 libray。还好编译器没死。不然又要重装。大家写代码时要细心啊。标点符号也要用对。英文逗号和中文逗号别混用。看着难受。
加油吧。代码世界里。没有死胡同。只有还没发现的函数库。