利用Python绘制酷炫的3D地图
目录
- 1.重庆市3D地图
- 2.中国3D地图一
- 3.中国3D地图二
- 4.中国3D地图三
- 5.地球展示
之前我们介绍了很多python地图可视化的内容,本次主要介绍如何Python绘制3D地图,还是比较神奇的,下面让我们一起一饱眼福吧!
1.重庆市3D地图
frompyechartsimportoptionsasopts frompyecharts.chartsimportMap3D frompyecharts.globalsimportChartType #经纬度 example_data=[ [[119.107078,36.70925,1000],[116.587245,35.415393,1000]], [[117.000923,36.675807],[120.355173,36.082982]], [[118.047648,36.814939],[118.66471,37.434564]], [[121.391382,37.539297],[119.107078,36.70925]], [[116.587245,35.415393],[122.116394,37.509691]], [[119.461208,35.428588],[118.326443,35.065282]], [[116.307428,37.453968],[115.469381,35.246531]], ] c=( Map3D(init_opts=opts.InitOpts(width="1400px",height="700px")) .add_schema( maptype="重庆", itemstyle_opts=opts.ItemStyleOpts( color="rgb(5,101,123)", opacity=1, border_width=0.8, border_color="rgb(62,215,213)", ), light_opts=opts.Map3DLightOpts( main_color="#fff", main_intensity=1.2, is_main_shadow=False, main_alpha=55, main_beta=10, ambient_intensity=0.3, ), view_control_opts=opts.Map3DViewControlOpts(center=[-10,0,10]), post_effect_opts=opts.Map3DPostEffectOpts(is_enable=False), ) .add( series_name="", data_pair=example_data, type_=ChartType.LINES3D, effect=opts.Lines3DEffectOpts( is_show=True, period=4, trail_width=3, trail_length=0.5, trail_color="#f00", trail_opacity=1, ), linestyle_opts=opts.LineStyleOpts(is_show=False,color="#fff",opacity=0), ) .set_global_opts(title_opts=opts.TitleOpts(title="Map3D")) .render("区县3D地图.html") )
2.中国3D地图一
数组里面分别代表:经纬度,数值。
frompyechartsimportoptionsasopts frompyecharts.chartsimportMap3D frompyecharts.globalsimportChartType frompyecharts.commons.utilsimportjsCode example_data=[ ("黑龙江",[127.9688,45.368,100]), ("内蒙古",[110.3467,41.4899,100]), ("吉林",[125.8154,44.2584,100]), ("辽宁",[123.1238,42.1216,100]), ("河北",[114.4995,38.1006,100]), ("天津",[117.4219,39.4189,100]), ("山西",[112.3352,37.9413,100]), ("陕西",[109.1162,34.2004,100]), ("甘肃",[103.5901,36.3043,100]), ("宁夏",[106.3586,38.1775,100]), ("青海",[101.4038,36.8207,100]), ("新疆",[87.9236,43.5883,100]), ("西藏",[91.11,29.97,100]), ("四川",[103.9526,30.7617,100]), ("重庆",[108.384366,30.439702,100]), ("山东",[117.1582,36.8701,100]), ("河南",[113.4668,34.6234,100]), ("江苏",[118.8062,31.9208,100]), ("安徽",[117.29,32.0581,100]), ("湖北",[114.3896,30.6628,100]), ("浙江",[119.5313,29.8773,100]), ("福建",[119.4543,25.9222,100]), ("江西",[116.0046,28.6633,100]), ("湖南",[113.0823,28.2568,100]), ("贵州",[106.6992,26.7682,100]), ("广西",[108.479,23.1152,100]), ("海南",[110.3893,19.8516,100]), ("上海",[121.4648,31.2891,100]), ] c=( Map3D(init_opts=opts.InitOpts(width="1400px",height="700px")) .add_schema( itemstyle_opts=opts.ItemStyleOpts( color="rgb(5,101,123)", opacity=1, border_width=0.8, border_color="rgb(62,215,213)", ), map3d_label=opts.Map3DLabelOpts( is_show=False, formatter=JsCode("function(data){returndata.name+""+data.value[2];}"), ), emphasis_label_opts=opts.LabelOpts( is_show=False, color="#fff", font_size=10, background_color="rgba(0,23,11,0)", ), 编程客栈light_opts=opts.Map3DLightOpts( main_color="#fff", main_intensity=1.2, main_shadow_quality="high", is_main_shadow=False, main_beta=10, ambient_intensity=0.3, ), ) .add( series_name="Scatter3D", data_pair=example_data, type_=ChartType.SCATTER3D, bar_size=1, shading="lambert", label_opts=opts.LabelOpts( is_show=False, formatter=JsCode("function(data){returndata.name+''+data.value[2];}"), ), ) .set_global_opts(title_opts=opts.TitleOpts(title="Map3D")) .render("中国3D地图.html") )
3.中国3D地图二
如果说前面的那个你看起来不太舒服,那么这个绝对适合做数据可视化展示哟!
frompyechartsimportoptionsasopts frompyecharts.chartsimportMap3D frompyecharts.globalsimportChartType frompyecharts.commons.utilsimportJsCode example_data=[ ("黑龙江",[127.9688,45.368,100]), ("内蒙古",[110.3467,41.4899,300]), ("吉林",[125.8154,44.2584,300]), ("辽宁",[123.1238,42.1216,300]), ("河北",[114.4995,38.1006,300]), ("天津",[117.4219,39.4189,300]), ("山西",[112.3352,37.9413,300]), ("陕西",[109.1162,34.2004,300]), ("甘肃",[103.5901,36.3043,300]), ("宁夏",[106.3586,38.1775,300]), ("青海",[101.4038,36.8207,300]), ("新疆",[87.9236,43.5883,300]), ("西藏",[91.11,29.97,300]), ("四川",[103.9526,30.7617,300]), ("重庆",[108.384366,30.439702,300]), ("山东",[117.1582,36.8701,300]), ("河南",[113.4668,34.6234,300]), ("江苏",[118.8062,31.9208,300]), ("安徽",[117.29,32.0581,300]), ("湖北",[114.3896,30.6628,300]), ("浙江",[119.5313,29.8773,300]), ("福建",[119.4543,25.9222,300]), ("江西",[116.0046,28.6633,300]), ("湖南",[113.0823,28.2568,300]), ("贵州",[106.6992,26.7682,300]), ("广西",[108.479,23.1152,300]), ("海南",[110.3893,19.8516,300]), ("上海",[121.4648,31.2891,1300]), ] c=( Map3D(init_opts=opts.InitOpts(width="1400px",height="700px")) .add_schema( itemstyle_opts=opts.ItemStyleOpts( color="rgb(5,101,123)", opacity=1, border_width=0.8, border_color="rgb(62,215,213)", ), map3d_label=opts.Map3DLabelOpts( is_show=False, formattwww.cppcns.comer=JsCode("function(data){returndata.name+""+data.value[2];}"), ), emphasis_label_opts=opts.LabelOpts( is_show=False, color="#fff", font_size=10, background_color="rgba(0,23,11,0)", ), light_opts=opts.Map3DLightOpts( main_color="#fff", main_intensity=1.2, main_shadow_quality="high", is_main_shadow=False, main_beta=10, ambient_intensity=0.3, ), ) .add( series_name="数据", data_pair=example_data, type_=ChartType.BAR3D, bar_size=1, shading="lambvBquAeert", label_opts=opts.LabelOpts( is_show=Fhttp://www.cppcns.comalse, formatter=JsCode("function(data){returndata.name+''+data.value[2];}"), ), ) .set_global_opts(title_opts=opts.TitleOpts(title="城市数据")) .render("带有数据展示地图.html") )
看完直呼这个模板,适合做城市之间的数据对,同时也展示了经纬度。
4.中国3D地图三
frompyechartsimportoptionsasopts frompyecharts.chartsimportMap3D frompyecharts.globalsimportChartType c=( Map3D(init_opts=opts.InitOpts(width="1400px",height="700px")) .add_schema( itemstyle_opts=opts.ItemStyleOpts( color="rgb(5,101,123)", opacity=1, border_width=0.8, border_color="rgb(62,215,213)", ), map3d_label=opts.Map3DLabelOpts( is_show=True, text_style=opts.TextStyleOpts( color="#fff",font_size=16,background_color="rgba(0,0,0,0)" ), ), emphasis_label_opts=opts.LabelOpts(is_show=True), light_opts=opts.Map3DLightOpts( vBquAemain_color="#fff", main_intensity=1.2, is_main_shadow=False, main_alpha=55, main_beta=10, ambient_intensity=0.3, ), ) .add(series_name="",data_pair="",maptype=ChartType.MAP3D) .set_global_opts( title_opts=opts.TitleOpts(title="全国行政区划地图-Base"), visualmap_opts=opts.VisualMapOpts(is_show=False), tooltip_opts=opts.TooltipOpts(is_show=True), ) .render("全国标签地图.html") )
5.地球展示
importpyecharts.optionsasopts frompyecharts.chartsimportMapGlobe frompyecharts.fakerimportPOPULATION data=[xfor_,xinPOPULATION[1:]] low,high=min(data),max(data) c=( MapGlobe(init_opts=opts.InitOpts(width="1400px",height="700px")) .add_schema() .add( maptype="world", series_name="WorldPopulation", data_pair=POPULATION[1:], is_map_symbol_show=False, label_opts=opts.LabelOpts(is_show=False), ) .set_global_opts( visualmap_opts=opts.VisualMapOpts( min_=low, max_=high, range_text=["max","min"], is_calculable=True, range_color=["lightskyblue","yellow","orangered"], ) ) .render("地球.html") )
其实pyecharts还可以做百度地图,可以缩放定位到每一个区域,但是其实我们在日常生活中可能用不上,如果要用可以去百度地图展示效果!
以上就是利用Python绘制酷炫的3D地图的详细内容,更多关于Python 3D地图的资料请关注我们其它相关文章!
精彩评论