matlab对数据可视化地理图,MATLAB数据可视化[1]:geobubble

1ea5129b21e1b29b0a284370b45b38bb.png

All comments and opinions expressed on Zhihu are mine alone and do not necessarily reflect those of my employers, past or present.

不管你拿MATLAB来做什么,相信很多用户都会认同MATLAB的数据可视化非常方便。下面就简单介绍下在新版2017b中引入的结合地理位置和数据的新函数geobubble。

老板:myc,下周我要给神秘投资人做PPT了,快给我一份美国各州的GDP的图。

准备数据

我们首先获取美国各州的GDP(50州+DC特区)

b783c4596811ad98743b39d355f965f3.jpg

geobubble需要知道经度和纬度的信息,我们可以用多种方式将州名转化为经纬度。这里我们选用MATLAB的Mapping Toolbox自带的美国51州的数据和shaperead函数

usaState = shaperead('usastatelo');

allStates = {usaState.Name};

i = 1;

for state = gdpTable.stateName'

idx = allStates==state;

lat(i) = usaState(idx).LabelLat;

lon(i) = usaState(idx).LabelLon;

i = i + 1;

end

% 更新table

gdpTable.Lat = lat';

gdpTable.Lon = lon';

现在我们有了各州的gdp及经纬度,数据就准备好了

35907491c574de9259ddd8aeb8377e8f.jpg

数据可视化

下面我们使用geobubble, myc指定了Lat和Lon两列作为经纬度

geobubble(gdpTable,'Lat','Lon')

7d6a68f673bee98ecf7d4bb38518a921.jpg

老板:图是不错,只是好像没有显示出各州gdp的数据?

map = geobubble(gdpTable,'Lat','Lon','SizeVariable','gdp');

14bcc932d7b5af9e1165d5e9e6c62af1.jpg

老板:嗯。。。意思到了,就是看不太清楚,没有冲击力

map.BubbleWidthRange = [5,100]

89c65cb6707e7fe4ff9154f662f1a105.jpg

老板:嗯,冲击力有了,颜色有点单调

myc:(你想怎样……)老板,我们可以用颜色来表示另一维的数据

老板:嗯,那我们把各州秋天的平均气温加上吧

myc:好(这到底是在要给谁做PPT)

574a4bdadc34762604aa9e9638094cd6.jpg

myc匆忙地加入了新的ColorVariable

geobubble(gdpTable,'Lat','Lon','SizeVariable','gdp','ColorVariable','FallTemp')

% MATLAB 报错

Expected ColorData to be one of these types:

categorical

Instead its type was double.

myc:原来颜色需要是categorical类型,那就将各州分成“冻成狗”,“好舒服”,“热成狗” 三个类吧

我们可以用discretize这个函数很方便地将数据进行分类(这里用10.5ºC和15ºC作为分界)

tempZone = discretize(gdpTable.FallTemp,[-inf,10.5,15,inf],'categorical',{'cold','normal','hot'});

% 更新table

gdpTable.zone = tempZone;

% 更新map

map.SourceTable = gdpTable;

map.ColorVariable = 'zone';

c35c74e3f979d37b0756ea0478fddc3f.jpg

老板:不错,没想到这么快就能将数据表现的既有冲击力又五彩缤纷

myc:一般一般,不知道老板你这又是要GDP又是要秋天平均气温,是想表达什么?

老板:最近气温骤降,我想给大家发点保暖用品。我想用这图告诉投资人,我们在如此寒冷的条件下创造了这么多GDP,是多么不容易。

myc:老板真是太善解人意了,不如让投资人给大家发点显卡暖暖脚吧。

老板:想多了吧,我们的投资人。。。

是做秋裤的

祝大家:jack_o_lantern:快乐,打好流感疫苗,注意保暖

~完~

注意:本文来自MATLAB。本站无法对本文内容的真实性、完整性、及时性、原创性提供任何保证,请您自行验证核实并承担相关的风险与后果!

CoLaBug.com遵循[CC BY-SA 4.0]分享并保持客观立场,本站不承担此类作品侵权行为的直接责任及连带责任。您有版权、意见、投诉等问题,请通过[eMail]联系我们处理,如需商业授权请联系原作者/原网站。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值