代码拉取完成,页面将自动刷新
s = network.aggregate(500, type="count", decay="linear")
fig_kwargs = {'figsize': [20, 20]}
bmap_kwargs = {'suppress_ticks': False, 'resolution': 'h', 'epsg': '4326'}
plot_kwargs = {'cmap': 'BrBG', 's': 8, 'edgecolor': 'none'}
sf_bbox = [30.66, 120.85,31.89, 122.20]
bmap, fig, ax =network.plot(s, bbox=sf_bbox,
fig_kwargs=fig_kwargs, bmap_kwargs=bmap_kwargs, plot_kwargs=plot_kwargs)
ax.set_facecolor('k')
plt.axis("off")
plt.show()
这块代码由于pandana (v0.6.1)network.plot()已经删除bmap_kwargs参数,也不再返回bmap,所以运行起来会报错。如果仍然需要使用network.plot()函数 ,建议改为下述代码:
s = network.aggregate(500, type="count", decay="linear")
plt.rcParams['axes.facecolor'] = 'black' # 这一行改变所有ax的背景颜色
sf_bbox = [30.66, 120.85,31.89, 122.20]
fig,ax = network.plot(s,
bbox=sf_bbox,
fig_kwargs={'figsize': [20, 20]},
plot_kwargs={'cmap': 'BrBG', 's': 8, 'edgecolor': 'none'})# network.plot()虽然有返回值,但实际已经绘图
实验中发现,如果要保存Jupyter notebook呈现的图,用plt.savefig()函数无法正常实现,而network.plot()函数也是集成了matplotlib.scatter()接口,所以可以考虑使用笨但稳妥的原始方法:
s = network.aggregate(500, type="count", decay="linear")
fig, ax = plt.subplots(figsize=(20,20))
# 绘制散点图
# s:marker size
# c:A scalar or sequence of n numbers to be mapped to colors using cmap
# cmap:colormap
plt.scatter(network.nodes_df.x, network.nodes_df.y,
c=s, s=4, cmap='BrBG')
# 添加色带
cb = plt.colorbar()
cb.ax.tick_params(labelsize=20)
ax.set_title('Shanghai: hotpots within 500m',fontsize=30)
ax.set_facecolor('black')
ax.set_xticks([]) # 去除x轴标尺
ax.set_yticks([]) # 去除y轴标尺
plt.savefig('hotpot.png',dpi=400) # dpi:分辨率
plt.show()
plt.close()