在学习地理数据绘图时,不免会用到要将站点显示到图片上,在程序设置好后,plots窗口显示的图像却与plt.savefig保存的图像不同,其一:站点的位置与底图不对应。其二:plots窗口显示的图像大小与画布的比例也有问题,这一定程度上会改变保存图像。
虽然不是什么大问题,但是也把我弄得焦头烂额。
结果:站点与底图不对应!!!
其实在Pycharm中对于plots窗口的显示,在新版本的Pycharm之后会有“使用交互模式”这一个选项,把这个选项取消勾选之后,站点和地图就能对应上了。
具体设置位置如下:
取消勾选后,结果如下:
至此:问题一已经解决
问题二:plots窗口显示的图像大小与画布的比例也有问题,这一定程度上会改变保存图像。
这其实与画布的设置,子图的设置有关。
fig = plt.figure(figsize=(8, 8))# 创建画布
ax = fig.add_axes([0.1,0.1,0.5,0.8], projection=proj)# 绘制子图
上面这两个命令分别对画布和子图进行设置,画布可以理解成一个大的美术馆,这个美术馆里可以收录很多个“子图”,在子图的设置中[0.1,0.1,0.5,0.8]分别表示子图左下角的原点的坐标(0.1,0.1);(0.5,0.8)则表示子图在画布中长和宽显示的比例,即0.5就显示该子图的宽与画布宽之比为0.5,长度类似。
由此比例的显示也就与原始画布的大小有关,原始的画布大,那么图里的元素显示起来就小,就远疏,例如:
fig = plt.figure(figsize=(15, 15))# 创建画布
ax = fig.add_axes([0.1,0.1,0.8,0.8], projection=proj)# 绘制子图
在子图设置不变的情况下,更改画布的设置:
fig = plt.figure(figsize=(8, 8))# 创建画布
结果如下:
可以看到,在单一子图绘制的情况下,调整画布的大小确实能够是的子图的比例得到修改。
如果你需要在一个大的画布下面画若干小的子图,通过对子图参数的修改,也同样能够使得子图的比例比较美观。
至此,问题二解决。