gpt4 book ai didi

matplotlib-basemap - 在交互式放大matplotlib basemap 时保留轴注释?

转载 作者:行者123 更新时间:2023-12-04 20:43:08 24 4
gpt4 key购买 nike

我正在创建一个显示世界地图的图形,上面有一些数据(这与这里无关)。现在我希望能够使用平移/缩放按钮或缩放到矩形按钮来放大它,然后在完成放大后将图形保存到图片文件中。问题是轴注释(和 lng-/lat-lines)是“硬嵌入”在图片中的,当您放大时它们会消失。

有人知道如何获得适应缩放的轴注释吗?

这是一个最小的工作示例(没有任何数据):

import matplotlib as mpl
import matplotlib.pyplot as plt

from mpl_toolkits.basemap import Basemap
import numpy as np

fig = plt.figure(1, figsize=(12, 7))
m = Basemap(projection='merc',llcrnrlat=-80,urcrnrlat=80,\
llcrnrlon=-180,urcrnrlon=180,resolution='l') #,lat_ts=20
m.drawcoastlines(); m.fillcontinents(); m.drawcountries()
# draw parallels and meridians.
m.drawparallels(np.arange(-90.,91.,30.),labels=[True, False, False, False], color='White')
m.drawmeridians(np.arange(-180.,181.,60.), labels=[False, False, False, True], color='White')
plt.show()

最佳答案

以防万一有人偶然发现我的问题,这是我想出的一个相当快速的解决方法。 :-)

我的预期应用是放大然后保存图形。现在我不以交互方式执行此操作,而是通过在代码中输入“缩放边界框”并使用以下函数动态创建 lng/lat-ticks(需要预先设置 import numpy as np):

def calculateBasemapTicks(minMaxList, nrOfParalles = 3, nrOfMeridians = 3):
"""
Attempts to calculate meaningful ranges for .basemap.drawparallels
and .drawmeridians. Enter a <minMaxList> in the form
[lng_min, lng_max, lat_min, lat_max].
Note that you might get rather ugly floats. I suggest using formatting
as in ".drawparallels(..., fmt='%.4f')" or similar.
"""

pAdjust = (minMaxList[3]-minMaxList[2])*0.1
mAdjust = (minMaxList[1]-minMaxList[0])*0.1
parallels = np.linspace(minMaxList[2]+pAdjust,minMaxList[3]-pAdjust,
nrOfParalles)
meridians = np.linspace(minMaxList[0]+mAdjust,minMaxList[1]-mAdjust,
nrOfMeridians)
return parallels, meridians

关于matplotlib-basemap - 在交互式放大matplotlib basemap 时保留轴注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22635144/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com