DIY 商场楼层平面热力地图分析商家的销售情况

DIY 商场楼层平面热力地图分析商家的销售情况

现在,可以制作数据地图的软件已经很多很方便了,不过,《用地图说话》书中 DIY 的地图做法,还有一个无法替代的实用用途,就是制作软件所不会支持的地图。比如经常有学员朋友问到的:


  • 制作商场楼层平面图各商家销售额的热力地图
  • 制作超市、仓库里货架的销售额或者库存的热力图
  • 制作写字楼楼层平面各商家租金收入的热力图


这类自定义的地图,只能自己 DIY。虽然做法和书中地图做法还是一样的,我还是一直想写个这样的实际范例,由于没有真实楼层地图一直没有做。


昨天,我们的学员朋友 Joshua 帮忙描了一个日本奥特莱斯的平面地图,因此现在可以制作一个接近真实的范例了,这里特别致谢 Joshua。本帖介绍商场楼层平面热力地图的制作方法与步骤。


1、画出自定义的地图图形。


制作这类自定义的地图,首先需要画出商场楼层的平面图。如果有设计图文件的话,或许可以导出到 Excel 里使用,没有的话就需要把平面图导入软件后用形状描。


你可以用 CAD 描,导出为 emf 文件,然后用 Excel 打开这个 emf 文件,取消组合,就得到一个个的形状。也可以直接在 Excel 里用任意多边形形状打点描绘。Joshua 同学是用 CAD 描了导出 emf 的。这一步可能是本做法里工作量最大的地方了,需要点耐心,细致活,好在只需要描一回。



2、为每个商家的地图图形命名。


为每个商店的形状命个名,便于后续 vba 引用填色。范例里因为图形太多,我直接沿用了导入后的默认名称 “任意多边形xxx”,然后建立形状名称和商店名称的对应关系,也是一样的。


3、计算每个商家销售业绩折算出的透明度。


简单起见,我们填色的原理是,先统一填充指定颜色,然后按比例设置透明度,得到深浅填色的地图。指标越大,透明度越小,颜色就越深,反之亦然。折算公式如下:

F6:=($J$7-E6)/($J$7-$J$6)*0.95

0.95是让最小值也有一定的颜色,而非完全透明。


4、编写填色宏代码。


很简单的两行代码,填色和设透明度,然后按商家个数循环一遍,对每个形状完成填色。代码如下:

Sub fill_shape_color() '填充地图颜色

On Error Resume Next '忽略本例里部分图形没有对应的错误

For i = 6 To 225 '为数据源的起始和结束行号

Sheet1.Shapes(Range("data!B" & i).Value).Fill.ForeColor.RGB = Sheet2.Range("base_color").Interior.Color
'使用设定的颜色填充地图图形

Sheet1.Shapes(Range("data!B" & i).Value).Fill.Transparency = Sheet2.Range("F" & i).Value
'按匹配的透明度值设置地图图形的透明度

Next i

End Sub


把宏赋给一个按钮,点击按钮运行宏,瞬间完成填色。


至此,一个简单的商场平面热力地图就完成了,可以复制到 PPT 里使用了。以上内容,是《用地图说话》第3.2节的内容,读者可以查阅该节及对应的范例。


5、增加动态交互效果

不过,我们有了在《经济学人的动态图表与交互设计》课程第11章里的技术,还可以进一步增加两个高级、炫酷的交互特性,把静态地图变成交互式仪表板:


一是,当用户用鼠标点哪个商家的图形,就突出显示商家的形状和销售指标等信息,这个操作比较稳。


二是,当用户勾选启用鼠标悬停功能,鼠标滑过哪个商家的图形,也可以突出显示商家的形状和销售指标等信息,这个操作比较灵动。


最后,得到的商场热力地图和交互效果如下图。



最后两个特性的制作比较复杂,无法在帖子里讲解清楚,有兴趣的朋友,可以参加《经2季》课程听视频讲解。锦上添花的功能,没有也可以。


好,这就是今天的帖子,DIY 商场楼层平面热力地图,分析各商家的销售情况,可以轻松发现哪些是旺铺,从事零售行业的朋友可以试一试。


Excel / 图表 / 数据 / 可视化

尽在 Excel 图表之道,点击阅读原文立即学习

发布于 2017-08-18 09:46