1. 程式人生 > 程式設計 >用 Python 製作地球儀的方法

用 Python 製作地球儀的方法

Python 功能真的很強,強大到讓人吃驚,它能做的事囊括爬蟲、資料分析、資料視覺化、遊戲等等各方面,這些功能在實際的使用中應用廣泛,開發程式講究頁面的美觀與炫酷效果, 今天的文章將給各位讀者朋友們帶來不一樣的視覺盛宴,感興趣的朋友歡迎一起嘗試。

寫在前面的話:在之前的文章Python中pyecharts安裝及安裝失敗的解決方法 中有介紹了 pyecharts 的安裝及使用,詳細教程請到官網 學習

pyecharts 功能很強大,只需要匯入相應的模組就配置相應的選項即可生成對應的超文字檔案,使用瀏覽器訪問即可!具體例項請見下文

盛宴1-2D世界地圖

先來個 2D 的瞅瞅~

用 Python 製作地球儀的方法

實現程式碼如下:

from pyecharts import options as opts
from pyecharts.charts import Map
from pyecharts.faker import Faker

c = (
 Map(init_opts=opts.InitOpts(width='1500px',height='1200px',bg_color='#E0EEEE'))
 # 載入世界地圖例項
 .add("世界地圖",[list(z) for z in zip(Faker.country,Faker.values())],"world")
 # 不顯示地圖標誌
 .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
 .set_global_opts(
 # 配置項標題設定
 title_opts=opts.TitleOpts(title="世界地圖示例"),visualmap_opts=opts.VisualMapOpts(max_=200)
 )
 # 生成超文字檔案
 .render("world_map.html")
)

盛宴2-中國3D地圖

通過匯入 Map3D 等實現中國地圖的 3D 呈現:

用 Python 製作地球儀的方法

實現程式碼如下:

from pyecharts import options as opts
from pyecharts.charts import Map3D
from pyecharts.globals import ChartType

c = (
 Map3D(init_opts=opts.InitOpts(width='1300px',height='1300px',bg_color='#EBEBEB'))

 .add_schema(
 itemstyle_opts=opts.ItemStyleOpts(
 color="#CDBA96",opacity=1,border_width=0.8,border_color="rgb(62,215,213)",),map3d_label=opts.Map3DLabelOpts(
 is_show=True,text_style=opts.TextStyleOpts(
 color="#104E8B",font_size=16,background_color="rgba(0,0)"
 ),emphasis_label_opts=opts.LabelOpts(is_show=True),light_opts=opts.Map3DLightOpts(
 main_color="#FFEBCD",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="全國行政區劃地圖"),visualmap_opts=opts.VisualMapOpts(is_show=False),tooltip_opts=opts.TooltipOpts(is_show=True),)
 .render("map3d_china_base.html")
)

盛宴3-貴州地圖

現在用另一種方式來實現我家鄉的地圖,一起來一睹為快~

用 Python 製作地球儀的方法

程式碼實現如下:

# 寫入省份內各地區經緯度
example_data = [
 [[106.70722,26.59820,1000],[106.63024,26.64702,1000]],[[104.83023,26.59336],[106.92723,27.72545]],[[105.30504,27.29847],[107.52034,26.29322]],[[107.89868,26.52881],[104.948571,25.077502]],[[105.9462,26.25367],[109.18099,27.69066]],]
# 新增 3D 地圖
c = (
 Map3D(init_opts=opts.InitOpts(width='1200px',height='1200px'))
 .add_schema(
 maptype="貴州",itemstyle_opts=opts.ItemStyleOpts(
 color="rgb(5,101,123)",light_opts=opts.Map3DLightOpts(
 main_color="#fff",is_main_shadow=True,view_control_opts=opts.Map3DViewControlOpts(center=[-10,10]),post_effect_opts=opts.Map3DPostEffectOpts(is_enable=True),)
 .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,label_opts=opts.LabelOpts(is_show=True),)
 .set_global_opts(title_opts=opts.TitleOpts(title="Map3D-GuiZhou3D"))
 .render("guizhou_map_3d.html")
)

盛宴4-地球村實現

一起來看看旋轉的地球吧^^

用 Python 製作地球儀的方法

實現程式碼如下:

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='1000px',height='1000px',bg_color='#FFFAFA',))
 .add_schema()
 .add(
 maptype="world",series_name="World Population",data_pair=POPULATION[1:],is_map_symbol_show=True,)
 .set_global_opts(
 title_opts=opts.TitleOpts(title="3D 地球示例"),# 設定地球屬性
 visualmap_opts=opts.VisualMapOpts(
 min_=low,max_=high,range_text=["max","min"],is_calculable=True,range_color=["lightskyblue","yellow","orangered"],)
 )
 .render("world_map_3d.html")
)

總結

希望今天的分享能給大家帶來不一樣的視覺享受,同時夥伴們也別忘了要多多實踐。 實踐是檢驗真理的唯一標準!

參考

http://gallery.pyecharts.org/#/Map3D/

示例程式碼 (https://github.com/JustDoPython/python-examples/tree/master/chaoxi/Earth_view )

到此這篇關於用 Python 製作地球儀的方法的文章就介紹到這了,更多相關python 地球儀內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!