利用Python繪制酷炫的3D地圖
之前我們介紹了很多Python地圖可視化的內(nèi)容,本次主要介紹如何Python繪制3D地圖,還是比較神奇的,下面讓我們一起一飽眼福吧!
1.重慶市3D地圖
from?pyecharts?import?options?as?opts
from?pyecharts.charts?import?Map3D
from?pyecharts.globals?import?ChartType
#?經(jīng)緯度
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("區(qū)縣3D地圖.html")
)

2.中國3D地圖一
數(shù)組里面分別代表:經(jīng)緯度,數(shù)值。
from?pyecharts?import?options?as?opts
from?pyecharts.charts?import?Map3D
from?pyecharts.globals?import?ChartType
from?pyecharts.commons.utils?import?JsCode
example_data?=?[
????("黑龍江",?[127.9688,?45.368,?100]),
????("內(nèi)蒙古",?[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){return?data.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){return?data.name?+?'?'?+?data.value[2];}"),
????????),
????)
????.set_global_opts(title_opts=opts.TitleOpts(title="Map3D"))
????.render("中國3D地圖.html")
)

3.中國3D地圖二
如果說前面的那個你看起來不太舒服,那么這個絕對適合做數(shù)據(jù)可視化展示喲!
from?pyecharts?import?options?as?opts
from?pyecharts.charts?import?Map3D
from?pyecharts.globals?import?ChartType
from?pyecharts.commons.utils?import?JsCode
example_data?=?[
????("黑龍江",?[127.9688,?45.368,?100]),
????("內(nèi)蒙古",?[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,
????????????formatter=JsCode("function(data){return?data.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="數(shù)據(jù)",
????????data_pair=example_data,
????????type_=ChartType.BAR3D,
????????bar_size=1,
????????shading="lambert",
????????label_opts=opts.LabelOpts(
????????????is_show=False,
????????????formatter=JsCode("function(data){return?data.name?+?'?'?+?data.value[2];}"),
????????),
????)
????.set_global_opts(title_opts=opts.TitleOpts(title="城市數(shù)據(jù)"))
????.render("帶有數(shù)據(jù)展示地圖.html")
)

看完直呼這個模板,適合做城市之間的數(shù)據(jù)對,同時也展示了經(jīng)緯度。
4.中國3D地圖三
from?pyecharts?import?options?as?opts
from?pyecharts.charts?import?Map3D
from?pyecharts.globals?import?ChartType
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(
????????????main_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="全國行政區(qū)劃地圖-Base"),
????????visualmap_opts=opts.VisualMapOpts(is_show=False),
????????tooltip_opts=opts.TooltipOpts(is_show=True),
????)
????.render("全國標簽地圖.html")
)

5.地球展示
import?pyecharts.options?as?opts
from?pyecharts.charts?import?MapGlobe
from?pyecharts.faker?import?POPULATION
data?=?[x?for?_,?x?in?POPULATION[1:]]
low,?high?=?min(data),?max(data)
c?=?(
????MapGlobe(init_opts=opts.InitOpts(width="1400px",?height="700px"))
????.add_schema()
????.add(
????????maptype="world",
????????series_name="World?Population",
????????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還可以做百度地圖,可以縮放定位到每一個區(qū)域,但是其實我們在日常生活中可能用不上,如果要用可以去百度地圖展示效果!
以上就是利用Python繪制酷炫的3D地圖的詳細內(nèi)容,更多關(guān)于Python 3D地圖的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python部署chineseocr_lite的實現(xiàn)示例
本文主要介紹了python部署chineseocr_lite的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
Python實現(xiàn)將內(nèi)容轉(zhuǎn)為base64編碼與解碼
這篇文章主要為大家詳細介紹了Python實現(xiàn)將內(nèi)容轉(zhuǎn)為base64編碼與解碼的示例代碼,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下2023-02-02
淺談Pytorch中的自動求導(dǎo)函數(shù)backward()所需參數(shù)的含義
今天小編就為大家分享一篇淺談Pytorch中的自動求導(dǎo)函數(shù)backward()所需參數(shù)的含義,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02
Python 中 and, or, &, |, ^ 
這篇文章主要介紹了Python 中 and, or, &, |, ^ 的使用小結(jié),本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-01-01
在Python中使用MySQL--PyMySQL的基本使用方法
PyMySQL 是在 Python3.x 版本中用于連接 MySQL 服務(wù)器的一個庫,Python2中則使用mysqldb。這篇文章主要介紹了在Python中使用MySQL--PyMySQL的基本使用,需要的朋友可以參考下2019-11-11
使用 Python 處理 JSON 格式的數(shù)據(jù)
JSON 是一個很好的選擇。如果你對 Python 有所了解,就更加事半功倍了。下面就來介紹一下如何使用 Python 處理 JSON 數(shù)據(jù)。感興趣的朋友跟隨小編一起看看吧2019-07-07
Python辦公自動化之自動化清理數(shù)據(jù)和自動化系統(tǒng)命令詳解
這篇文章主要為大家詳細介紹了Python辦公自動化中自動化清理數(shù)據(jù)和自動化系統(tǒng)命令的相關(guān)知識,文中的示例代碼講解詳細,感興趣的小伙伴可以了解下2024-01-01

