首页 > 编程知识 正文

python数据可视化matplotlib教程,python数据可视化与matplotlib

时间:2023-05-06 03:47:33 阅读:188146 作者:821

我认为这是你正在寻找(大致).请注意,在绘制pcolor并传入hsv色彩映射(Docs:

cmap parameter for pcolormesh和

available colormaps)之前,关键的是屏蔽数据数组.

我已经保留代码来绘制地图,非常接近实例,所以应该很容易遵循.同样的原因我保留了插值代码.请注意,插值是线性的,而不是立方体 – kx = ky = 1 – 因为您没有给出足够的点来进行立体插值(您需要至少16个 – scipy会抱怨较少说“m必须是> =(kx 1)(ky 1)“,尽管在documentation中没有提到约束).

我也扩展了meshgrid的范围,并保持在x / y的范围内.

from mpl_toolkits.basemap import Basemap,maskoceans

import matplotlib.pyplot as plt

import numpy as np

from scipy import interpolate

# set up orthographic map projection with

# perspective of satellite looking down at 0N, 20W (Africa in main focus)

# use low resolution coastlines.

map = Basemap(projection='ortho',lat_0=0,lon_0=20,resolution='l')

# draw coastlines, country boundaries

map.drawcoastlines(linewidth=0.25)

map.drawcountries(linewidth=0.25)

# Optionally (commented line below) give the map a fill colour - e.g. a blue sea

#map.drawmapboundary(fill_color='aqua')

# draw lat/lon grid lines every 30 degrees.

map.drawmeridians(np.arange(0,360,30))

map.drawparallels(np.arange(-90,90,30))

data = {'Lagos': (6.453056, 3.395833,0),

'Cairo': (30.05, 31.233333,90),

'Johannesburg': (-26.204444, 28.045556,180),

'Mogadishu': (2.033333, 45.35, 270)}

x,y,z = zip(*data.values())

xnew, ynew = np.mgrid[-30:60:0.1, -50:50:0.1]

tck = interpolate.bisplrep(x, y, z, s=0,kx=1,ky=1)

znew = interpolate.bisplev(xnew[:,0], ynew[0,:], tck)

znew = maskoceans(xnew, ynew, znew)

col_plot = map.pcolormesh(xnew, ynew, znew, latlon=True, cmap='hsv')

plt.show()

产量

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。