143 Star 877 Fork 102

ni1o1 / pygeo-tutorial

 / 详情

可视化城市可达性代码改进

待办的
创建于  
2021-09-09 20:47
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()

评论 (0)

qiushanqiuting 创建了任务
qiushanqiuting 关联仓库设置为ni1o1/pygeo-tutorial
展开全部操作日志

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(1)
Python
1
https://gitee.com/ni1o1/pygeo-tutorial.git
git@gitee.com:ni1o1/pygeo-tutorial.git
ni1o1
pygeo-tutorial
pygeo-tutorial

搜索帮助