Figure factory: Plot a scalar field with geographical coordinates on map with projection
未关闭
还没有人认领这个 Issue。
feature
P3
- 主要语言
- Python
- 星标
- 18.8k
- 派生
- 2.8k
- 平均合并
- 16 小时 26 分钟
- 30 天内合并 PR
- 21
描述
I have an array of global temperatures and associated longitude and latitude coordinates arrays. I would like to plot the temperatures as a heatmap on a map with custom projection and showing coastlines.
A working code example using matplotlib is:
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
f, ax = plt.subplots(subplot_kw={'projection': ccrs.Robinson()})
p = ax.pcolormesh(longitude, latitude, temperature, cmap='RdBu_r', transform=ccrs.PlateCarree())
ax.coastlines()
f.colorbar(p, orientation='horizontal')
The output figure from code block above is (data available here):

At the moment I was only able to use plotly for a simple heatmap with the following code:
from plotly.offline import iplot
import plotly.graph_objs as go
layout = go.Layout(geo={'projection': {'type': 'robinson'}})
data = go.Heatmap(x=longitude, y=latitude, z=temperature)
fig = go.Figure(data=[data], layout=layout)
iplot(fig)
As next figure shows, main issues are:
-
the projection is not working;
-
no coastlines are shown.

贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
从提供的 plotly.graph_objs Heatmap 示例开始,并将其与 matplotlib/cartopy 的行为进行比较。当经度/纬度温度数据以具有所请求投影和可见海岸线的 heatmap 形式渲染时,工作即告完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- plotly, python
- 领域
- data-visualization
- Issue 类型
- 功能
- 难度
- 5/5
- 预计耗时
- 一周以上
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 30/100