用 Python 制作地球儀的方法
Python 功能真的很強(qiáng),強(qiáng)大到讓人吃驚,它能做的事囊括爬蟲(chóng)、數(shù)據(jù)分析、數(shù)據(jù)可視化、游戲等等各方面,這些功能在實(shí)際的使用中應(yīng)用廣泛,開(kāi)發(fā)程序講究頁(yè)面的美觀與炫酷效果, 今天的文章將給各位讀者朋友們帶來(lái)不一樣的視覺(jué)盛宴,感興趣的朋友歡迎一起嘗試。
寫(xiě)在前面的話:在之前的文章Python中pyecharts安裝及安裝失敗的解決方法 中有介紹了 pyecharts 的安裝及使用,詳細(xì)教程請(qǐng)到官網(wǎng) 學(xué)習(xí)
pyecharts 功能很強(qiáng)大,只需要導(dǎo)入相應(yīng)的模塊就配置相應(yīng)的選項(xiàng)即可生成對(duì)應(yīng)的超文本文件,使用瀏覽器訪問(wèn)即可!具體實(shí)例請(qǐng)見(jiàn)下文
盛宴1-2D世界地圖
先來(lái)個(gè) 2D 的瞅瞅~
實(shí)現(xiàn)代碼如下:
from pyecharts import options as optsfrom pyecharts.charts import Mapfrom pyecharts.faker import Fakerc = ( Map(init_opts=opts.InitOpts(width=’1500px’, height=’1200px’,bg_color=’#E0EEEE’)) # 加載世界地圖實(shí)例 .add('世界地圖', [list(z) for z in zip(Faker.country, Faker.values())], 'world') # 不顯示地圖標(biāo)志 .set_series_opts(label_opts=opts.LabelOpts(is_show=False)) .set_global_opts( # 配置項(xiàng)標(biāo)題設(shè)置 title_opts=opts.TitleOpts(title='世界地圖示例'), visualmap_opts=opts.VisualMapOpts(max_=200) ) # 生成超文本文件 .render('world_map.html'))
盛宴2-中國(guó)3D地圖
通過(guò)導(dǎo)入 Map3D 等實(shí)現(xiàn)中國(guó)地圖的 3D 呈現(xiàn):
實(shí)現(xiàn)代碼如下:
from pyecharts import options as optsfrom pyecharts.charts import Map3Dfrom pyecharts.globals import ChartTypec = ( 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,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) # 全局設(shè)置地圖屬性 .set_global_opts( title_opts=opts.TitleOpts(title='全國(guó)行政區(qū)劃地圖'), visualmap_opts=opts.VisualMapOpts(is_show=False), tooltip_opts=opts.TooltipOpts(is_show=True), ) .render('map3d_china_base.html'))
盛宴3-貴州地圖
現(xiàn)在用另一種方式來(lái)實(shí)現(xiàn)我家鄉(xiāng)的地圖,一起來(lái)一睹為快~
代碼實(shí)現(xiàn)如下:
# 寫(xiě)入省份內(nèi)各地區(qū)經(jīng)緯度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)', 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=True, 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=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-地球村實(shí)現(xiàn)
一起來(lái)看看旋轉(zhuǎn)的地球吧^^
實(shí)現(xiàn)代碼如下:
import pyecharts.options as optsfrom pyecharts.charts import MapGlobefrom pyecharts.faker import POPULATIONdata = [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, label_opts=opts.LabelOpts(is_show=True), ) .set_global_opts( title_opts=opts.TitleOpts(title='3D 地球示例'), # 設(shè)置地球?qū)傩?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'))
總結(jié)
希望今天的分享能給大家?guī)?lái)不一樣的視覺(jué)享受,同時(shí)伙伴們也別忘了要多多實(shí)踐。 實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)!
參考
http://gallery.pyecharts.org/#/Map3D/
示例代碼 (https://github.com/JustDoPython/python-examples/tree/master/chaoxi/Earth_view )
到此這篇關(guān)于用 Python 制作地球儀的方法的文章就介紹到這了,更多相關(guān)python 地球儀內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. idea設(shè)置代碼格式化的方法步驟2. ajax異步讀取后臺(tái)傳遞回的下拉選項(xiàng)的值方法3. 關(guān)于ajax異步訪問(wèn)數(shù)據(jù)的問(wèn)題4. Vue打包部署到Nginx時(shí),css樣式不生效的解決方式5. Python 調(diào)用API發(fā)送郵件6. 聊一聊數(shù)據(jù)請(qǐng)求中Ajax、Fetch及Axios的區(qū)別7. ajax異步實(shí)現(xiàn)文件分片上傳實(shí)例代碼8. Vue組件通信$attrs、$listeners實(shí)現(xiàn)原理解析9. HTML iframe標(biāo)簽用法案例詳解10. 簡(jiǎn)單明了帶你了解CSS Modules
