LAB3

Slides
Type
LAB
虽然之前已经用matplotlib进行绘图了,但是这节实验课才开始教授面向对象的绘图API
绘图技巧:
  • 我们的许多绘图代码单元格都以分号 ; 或 plt.show() 结尾。前者防止单元格的最后一行产生任何多余的输出;后者显式地返回(和输出)图形。
  • 利用 plt.plot() 绘图时,可以通过ax = plt.gca()来得到当前画布,进而通过面向对象式的分格来设置属性
 
利用正则表达式提取位置字符串中的坐标:
# 位置字符串为:'3047 DOHR ST\nBerkeley, CA\n(37.851516, -122.280088)' # 利用正则表达式提取其中的 经纬度,然后表示为两列 pattern = r'\(([-]?\d+\.\d+), ([-]?\d+\.\d+)\)' calls_lat_lon = (calls["Block_Location"] .str.extract(pattern) .rename(columns={0:"Lat", 1:"Lon"}))
用 ser.str.extract(pattern) 可以将匹配的分为多列,用 ser.str.findall(pattern) 就是一列
 
 
在notebooks中根据坐标及对应的值绘制 地图上的热力图:
# just run this cell import folium import folium.plugins # missing_lat_lon 是dataframe,['Lat', 'Lon'] 是两列坐标,根据坐标绘制热力图 SF_COORDINATES = (37.87, -122.28) sf_map = folium.Map(location=SF_COORDINATES, zoom_start=13) locs = calls.drop(missing_lat_lon.index)[['Lat', 'Lon']].astype('float').values heatmap = folium.plugins.HeatMap(locs.tolist(), radius=10) sf_map.add_child(heatmap)