python数据可视化地图_Python数据可视化:3D动态图,让你的足迹实现在地图上

本文介绍如何使用Python和pyecharts库从城市经纬度数据创建3D足迹图,包括数据准备、绘制流程及参数调整。

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

以下文章来源于python数据分析之禅 ,作者小dull鸟

42e052b6-14fb-4c31-8efd-b436b78fa721

今天给大家带来一篇3D个人足迹图制作教程,先看看成果图:

fa6a1059ffda40e8b491516fa7813cbe

下面给大家详细介绍一下制作步骤:

ca298025f81b46b8954e1cb660253dbe

一、准备足迹城市数据

因为本次用pyecharts画3D足迹图的数据接口是列表形式:

a89aa8f3e2a14afcbe0dea3bbf51654d

所以我们要把城市的经纬度信息找出来,如果城市比较少可以手动搜索填写,如果城市比较多的话可以做个小爬虫程序,这里给大家推荐1个数据接口

https://apis.map.qq.com/jsapi?qt=geoc&addr=城市名字&key=UGMBZ-CINWR-DDRW5-W52AK-D3ENK-ZEBRC&output=jsonp&pf=jsapi&ref=jsapi

返回数据如下:

cbffb44c2b504dd69e46f1ad5fad1fc8

我们可以先把足迹城市放入csv表格中:

fe1853e318c54b3f957fbf51ac504662

importrequestsimportcsvimportjson

city_points=[]

with open('足迹城市.csv','r') as f:

city=csv.reader(f)for i incity:

city_point=[]for j ini:

url='https://apis.map.qq.com/jsapi?qt=geoc&addr={0}'\'&key=UGMBZ-CINWR-DDRW5-W52AK-D3ENK-ZEBRC&output=jsonp&pf=jsapi&ref=jsapi'.format(j)

response=requests.get(url)

text=json.loads(response.text)

city_point.append([text['detail']['pointx'],text['detail']['pointy']])

city_points.append(city_point)

可以返回足迹城市的经纬度数据,直接用于该3D足迹图数据接口

二.画3D足迹图

画足迹图代码如下:

c =(

Map3D()

.add_schema(

itemstyle_opts=opts.ItemStyleOpts(

color="rgb(72,61,139)", #地图背景颜色

opacity=100, #图形透明度

border_width=0.8, #边界宽度

border_color="rgb(80,100,0,0)",#边界颜色

),

map3d_label=opts.Map3DLabelOpts(

is_show=True, #显示各省名字

text_style=opts.TextStyleOpts(

color="#DC143C", font_size=9, background_color="rgba(75,0,130,0)"),

),

light_opts=opts.Map3DLightOpts(

main_color="#fff", #主光源的颜色

main_intensity=1.2, #主光源的强度

is_main_shadow=True, #是否投射阴影

main_alpha=55, #主光源上下旋转角度

main_beta=10, #主光源左右旋转角度

ambient_intensity=0.3, #环境光的强度

),

)

.add(

series_name="",

data_pair=city_data, #足迹城市经纬度数据

type_=ChartType.LINES3D, #地图类型

effect=opts.Lines3DEffectOpts( #轨迹特效设置

is_show=True,

period=8, #尾迹特效的周期

trail_width=8, #尾迹特效的宽度

trail_length=1, #尾迹特效的长度

trail_color="#DC143C", #尾迹特效的颜色

trail_opacity=1, #尾迹特效的不透明度

constant_speed=8),

linestyle_opts=opts.LineStyleOpts(is_show=True, color="#3CB371", opacity=0.5), #轨迹特效实线设置,设置透明度opacity为0.5

)

.set_global_opts(title_opts=opts.TitleOpts(title="3D足迹城市图"))

)

c.render_notebook()

根据读者朋友要求,我把画图过程中的注释都加上了,方便理解,大家可以根据自己的爱好调整图形效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值