小編給大家分享一下matplotlib如何實現Basemap的3d效果,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
成都創新互聯公司是專業的余江網站建設公司,余江接單;提供成都做網站、網站建設、外貿營銷網站建設,網頁設計,網站設計,建網站,PHP網站建設等專業做網站服務;采用PHP框架,可快速的進行余江網站開發網頁制作和功能擴展;專業做搜索引擎喜愛的網站,專業的做網站團隊,希望更多企業前來合作!
matplotlib是python中的一個畫圖插件;
matplotlib支持二維圖的效果,也支持三維圖的效果,在大數據的制作中,可以以地圖為底,在旁邊加上柱狀圖的效果,達到一個三維立體的效果,python現成的庫有很多,這在開發中就比較方便,可以直接import進來使用。
具體的實現代碼如下:
#coding=utf-8
#引用相應的畫圖類庫
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from mpl_toolkits.basemap import Basemap
from matplotlib.collections import PolyCollection
import numpy as np
#初始化一個基礎地圖和三維的坐標軸
map = Basemap()
fig = plt.figure()
ax = Axes3D(fig)
#設置三維的朝向角度,高度和距離
ax.azim = 270
ax.elev = 50
ax.dist = 8
#在底面上畫地圖的海岸線和國界線
ax.add_collection3d(map.drawcoastlines(linewidth=0.25))
ax.add_collection3d(map.drawcountries(linewidth=0.35))
#將地圖上的面轉換成三維坐標軸上的圖畫
polys = []
for polygon in map.landpolygons:
polys.append(polygon.get_coords())
lc = PolyCollection(polys, edgecolor='black',
facecolor='#123456', closed=False)
ax.add_collection3d(lc)
#模擬地圖上的柱狀圖數據,坐標按照經緯度
lons = np.array([-13.7, -10.8, -13.2, -96.8, -7.99, 7.5, -17.3, -3.7])
lats = np.array([9.6, 6.3, 8.5, 32.7, 12.5, 8.9, 14.7, 40.39])
cases = np.array([1971, 7069, 6073, 4, 6, 20, 1, 1])
deaths = np.array([1192, 2964, 1250, 1, 5, 8, 0, 0])
places = np.array(['Guinea', 'Liberia', 'Sierra Leone','United States', 'Mali', 'Nigeria', 'Senegal', 'Spain'])
x, y = map(lons, lats)
#添加柱狀圖的效果
ax.bar3d(x, y, np.zeros(len(x)), 2, 2, deaths, color= 'r', alpha=0.75)
plt.show()
以上是“matplotlib如何實現Basemap的3d效果”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創新互聯行業資訊頻道!
本文名稱:matplotlib如何實現Basemap的3d效果
標題URL:http://m.kartarina.com/article6/jedoog.html
成都網站建設公司_創新互聯,為您提供搜索引擎優化、網頁設計公司、定制開發、企業建站、面包屑導航、標簽優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯