1700428941
5.4 基于地图选择的动态图表(鼠标点击版)
1700428942
1700428943
在国外的财经网站上,我们经常会看到这样一种通过地图选择的交互式图表:当读者用鼠标在地图上选择某个地区,右侧的图表就会自动切换为该地区的数据。这种做法在地域选择的方式上提供了直观的地理位置信息,可方便地分析大量数据,交互性强,非常具有吸引力。
1700428944
1700428945
作图思路
1700428946
1700428947
这种基于地图选择的动态图表可以分解为地图选择器和动态图表两部分来实现。地图选择器负责在用户点击某个地区的图形时,触发一个宏过程,记录下用户选择的地区名,并突出显示所选地区图形的填充效果。动态图表模型则根据地图选择器所记录的地区名,相应地变换图表的数据源,从而产生动态交互的效果。
1700428948
1700428949
作图步骤
1700428950
1700428951
1700428952
1.准备地图模型,如图5-9所示。
1700428953
1700428954
1700428955
1700428956
1700428957
图5-9 基于地图选择的动态图表模型 范例文件名:5.4基于地图选择的动态图表(鼠标点击版).xls(或.xlsm)
1700428958
1700428959
首先将准备好的地图图形放置到名为dashboard的工作表,注意,这些图形应已按各省名称命名。动态图表模型后续步骤讲解。
1700428960
1700428961
2.编写地图选择器的宏过程。
1700428962
1700428963
我们要编写一个宏过程,当用户单击某省图形后,将该省名称填入A1单元格,供后面的动态图表模型引用。同时要将该省图形填充为表示已被选中的高亮色,并将之前选中的图形还原为表示未选中的淡颜色。
1700428964
1700428965
单击菜单工具→宏→Visual Basic编辑器(或Alt+F11键),进入VBA编辑窗口。在左侧窗口中选择ThisWorkbook,在右侧窗口中输入如图5-10所示的代码。
1700428966
1700428967
1700428968
1700428969
1700428970
图5-10 地图选择器的宏代码
1700428971
1700428972
其中,Application.Caller会返回此宏的调用者,也就是被点击的地图图形的名称,该值被记录在单元格A1。
1700428973
1700428974
3.为每个地区图形指定宏调用。
1700428975
1700428976
现在要将上述宏过程指定给每个省的地图图形。选中某省的图形,单击右键→指定宏,选择user_click。按此方法逐一为各省图形指定宏调用。
1700428977
1700428978
更加便捷的方法是使用如图5-11所示的宏代码,为各省图形批量指定宏调用。
1700428979
1700428980
1700428981
1700428982
1700428983
图5-11 为地图图形批量设置宏调用
1700428984
1700428985
4.测试选择器。
1700428986
1700428987
现在可以测试选择器了。注意,测试之前,先要手动为单元格A1初始化(即输入一个值,如“湖北”)。然后,用鼠标逐一单击各省的地图图形,你会发现选择的结果会反映在单元格A1中,地图图形的颜色也会跟随变化。
1700428988
1700428989
至此,一个地图形式的选择器已经完成,它将是第6章综合地图模型的重要部件。
[
上一页 ]
[ :1.70042894e+09 ]
[
下一页 ]