大数跨境
0
0

地理视图可视化分析

地理视图可视化分析 大话数据分析
2020-09-12
1
导读:本文借助两个经典案例,展示数据在可视化中的应用。



美国人口可视化


pop_data = pd.read_csv(open(r'H:\python数据分析\数据\us_cities.csv'))pop_data.head(10)

import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom mpl_toolkits.basemap import Basemap%matplotlib inline
plt.style.use('ggplot')plt.figure(figsize=(10,6))
map3 = Basemap(projection='stere', lat_0=90, lon_0=-105,llcrnrlon=-118.67, llcrnrlat=23.41,urcrnrlon=-64.5, urcrnrlat=45.44,resolution='l', area_thresh=1000.0)map3.drawcoastlines()  #绘制海岸线map3.drawcountries()   #绘制国家map3.drawmapboundary() #绘制边界map3.drawstates()      #绘制州map3.drawcounties()    # 绘制县
map3.drawmeridians(np.arange(0, 360, 30))    #绘制经线map3.drawparallels(np.arange(-90, 90, 30))   #绘制纬线
lat = np.array(pop_data["lat"][0:180])   # 获取维度之维度值lon = np.array(pop_data["lon"][0:180])   # 获取经度值pop = np.array(pop_data["pop"][0:180],dtype=float)  # 获取人口数,转化为numpy浮点型size = (pop/np.max(pop))*1000 # 计算每个点的大小
x,y = map3(lon,lat)map3.scatter(x,y,s=size)
plt.title('Population distribution in America') #加标题


世界地震可视化


import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom mpl_toolkits.basemap import Basemap%matplotlib inline
eq_data = pd.read_csv(open(r'H:\python数据分析\数据\all_week.csv'))eq_data.head()

eq_data['latitude'].isnull().sum()eq_data['mag'].isnull().sum()eq_data = eq_data[eq_data['mag'].notnull()]eq_data['mag'].isnull().sum()
plt.style.use('ggplot')plt.figure(figsize=(10,6))map4 = Basemap(projection='robin', lat_0=39.9, lon_0=116.3,resolution = 'l', area_thresh = 1000.0)
map4.drawcoastlines()map4.drawcountries()map4.drawmapboundary()
map4.drawmeridians(np.arange(0, 360, 30))map4.drawparallels(np.arange(-909030))
x,y = map4(list(eq_data['longitude']),list(eq_data['latitude']))map4.plot(x, y, 'ro', markersize=6)


plt.style.use('ggplot')plt.figure(figsize=(10,6))
map5 = Basemap(projection='robin', lat_0=39.9, lon_0=116.3,resolution = 'l', area_thresh = 1000.0)
map5.drawcoastlines()map5.drawcountries()map5.drawmapboundary()
map5.drawmeridians(np.arange(0, 360, 30))map5.drawparallels(np.arange(-909030))
size = 2for lon, lat, mag in zip(list(eq_data['longitude']), list(eq_data['latitude']), list(eq_data['mag'])):x,y = map5(lon, lat)msize = mag * sizemap5.plot(x, y, 'ro', markersize=msize)


def get_marker_color(mag):if mag < 3.0:return ('go')elif mag < 5.0:return ('yo')else:return ('ro')      #定义设置颜色函数
plt.style.use('ggplot')plt.figure(figsize=(10,6))
map6 = Basemap(projection='robin', lat_0=39.9, lon_0=116.3,resolution = 'l', area_thresh = 1000.0)
map6.drawcoastlines()map6.drawcountries()map6.drawmapboundary()
map6.drawmeridians(np.arange(0, 360, 30))map6.drawparallels(np.arange(-90, 90, 30))
size = 2for lon, lat, mag in zip(list(eq_data['longitude']), list(eq_data['latitude']), list(eq_data['mag'])):x,y = map6(lon, lat)msize = mag * sizemap6.plot(x, y, get_marker_color(mag), markersize=msize)   #调用函数
plt.title('Earthquakes')

【声明】内容源于网络
0
0
大话数据分析
数据分析的收集者、整理者、分享者、实践者
内容 408
粉丝 0
大话数据分析 数据分析的收集者、整理者、分享者、实践者
总阅读27
粉丝0
内容408