- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试将 matplotlib 轴放置在 cartopy 图上的特定坐标处,但不知道如何正确设置位置。代码应该:
我的代码如下:
import numpy as np
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.feature as cfeature
plt.figure(figsize=(8, 8))
extent = [6, 15, 47, 55] # Extent of Germany in Lat/Long
lat, lon = 52.520007, 13.404954 # Location of Berlin
# Plot our coastline and set the extent
ax = plt.axes(projection=ccrs.Orthographic(central_longitude=10.5, \
central_latitude=51.0, \
globe=None))
ax.coastlines('10m')
ax.set_extent(extent)
# Add text at the location of Berlin
plt.text(lon, lat, 'Berlin', \
verticalalignment='center', \
horizontalalignment='right', \
transform=ccrs.PlateCarree())
# Add subplot
sub_ax = plt.axes([(lon-extent[0])/(extent[1] - extent[0]), \
(lat-extent[2])/(extent[3] - extent[2]), \
.1, .1], \
axisbg='none')
plt.hist(np.random.randn(100), 10, normed=1)
如您所见,直方图不在柏林,因为(我推测)它是相对于图形的边界框而不是轴。我试过像添加 plt.text
一样添加 transform=ax.transAxes
,但这会在 上产生
.unhashable type
错误BboxTransformTo
我应该补充一点,我知道我的位置计算通常不起作用,因为我没有使用欧几里德几何,但就我的目的而言,它已经足够接近了。
最佳答案
以下代码应获取相对于图形边缘的所需位置:
ax_lon = (lon-extent[0])/(extent[1] - extent[0])
ax_lat = (lat-extent[2])/(extent[3] - extent[2])
fig_lon = (ax.bbox.x0 + ax_lon * ax.bbox.width) / fig.bbox.width
fig_lat = (ax.bbox.y0 + ax_lat * ax.bbox.height) / fig.bbox.height
但是如果调整图形的大小,这些值就会出错。我能想到的在调整大小时将其保持在正确位置的唯一方法是使用事件回调来更新位置。
关于python - 将子图放置在 cartopy 中的纬度/经度坐标处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41716553/
我画了两组重叠的轴,一组是另一组的放大版。我想在缩放轴的角和它在较大轴上代表的矩形的角之间画线。但是,我画的线稍微偏离了位置。我试图将其浓缩为一个简单的示例: import cartopy.crs a
我想知道给定纬度和经度,坐标是陆地还是海洋 根据https://gis.stackexchange.com/questions/235133/checking-if-a-geocoordinate-p
我已经看到了一些关于这个主题的其他问题,但是库已经发生了很大的变化,以至于这些问题的答案似乎不再适用。 栅格 used to include an example用于在 Cartopy GeoAxes
我正在为 xarray 进行一些开发。我试图安装 rasterio 但它似乎搞砸了我的 cartopy 安装。 我在我的 mac 上安装了 rasterio: brew install gdal pi
使用 basemap ,我曾经像这样添加我的自定义边界 shapefile: map = Basemap(..) map.readshapefile(file.shp, 'attribute', dr
所以,多年来我一直在 Python 2.7 中使用 Basemap,我正在转向 Python3.7 并且想转向 cartopy。我处理大量数据,其中我有投影信息,但我没有数据的纬度和经度网格。这就是我
我想要制作一个点的动画,该点沿着 map 上的一个位置到另一个位置的路径移动。 例如,我使用大地测量变换绘制了从纽约到新德里的路径。例如。取自文档 Adding data to the map plt
我想绘制来自全局多维数据集的数据,但仅限于国家/地区列表。因此,我根据国家/地区的“边界框”选择一个子立方体。 到目前为止一切顺利。我正在寻找一种简单的方法来掩盖立方体中不属于我的任何国家/地区的所有
如果我定义一组具有给定高度和宽度的(地理)轴,我如何确保绘图将填充这些轴? import matplotlib.pyplot as plt import cartopy.crs as ccrs ax
我有两个 shapefile。一个是点要素 shapefile,名为“point.shp”,另一个是名为“polygon.shp”的多边形 shapefile。我想使用 cartopy 添加到 map
我是 cartopy 的新手,仍在学习基本功能。 我试图绘制一个特定的区域,但是,当我请求 80oN 时,cartopy 扩展了这个区域并生成了一个高达大约 85oN 的 map 。有没有办法确保我只
我正在尝试在北太平洋投影上绘制 250 hPa 位势高度、1000 hPa 可降水量和 250 hPa 风速。当尝试使用倒刺时,我没有收到错误,但倒刺并没有实际显示在 map 上。我认为这可能与我的数
我想用 180 在图的底部绘制北半球的极地立体图,以便我可以强调太平洋地区。我正在使用来自 git 的最新 cartopy,并且可以制作极坐标立体图没有问题,但我无法弄清楚如何更改图底部的经度。我尝试
我正在使用 matplotlib 和 Cartopy 从二维网格数据集生成图像。以下链接中的示例如下所示: 驱动此图像创建并将出现问题的关键代码如下: dataset = Dataset('/path
我想使用 Cartopy 仅绘制一个区域(在我的例子中,北美和南美)。 我目前正在使用以下代码: import cartopy import cartopy.crs as ccrs import ma
我正在尝试使用 Cartopy 在北极立体 map 投影上创建等高线图。我使用 add_cycular_point() 尝试解决经度 0 和经度 35X 之间存在间隙的问题,并按照文档 (always
我正在尝试使用 Cartopy 和 Anaconda Python 绘制 map 点,但在转换时遇到了一些奇怪的失败。在我的简单示例中,我试图绘制 3 个点,但它们正在加倍。 import matpl
如何在 Cartopy 中绘制美国县边界? 绘制州和国家边界非常简单 ax.add_feature(cfeature.BORDERS.with_scale('50m')) ax.add_feature
我正在尝试在 OSM 图 block 之上过度绘制一些卫星图像数据。 我可以分别绘制它们,但似乎不能过度绘制,我认为这取决于投影。 我加载数据并获取投影信息 ds = gdal.Open(fname)
我正在尝试使用 cartopy 绘制北极的轮廓。我已经使用了 add_circlic_point ,这已经成功地填充了 pcolormesh 中本初子午线的间隙,但是轮廓没有成功交叉,而是绕地球一圈进
我是一名优秀的程序员,十分优秀!