

美国人口可视化
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(-90, 90, 30))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(-90, 90, 30))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')


