python - Altair:全球地图居中
问题描述
我正在学习通过 Altair 绘制地图,这里的示例如下Example Gallery - World Projections。
如何在我想要的 latlong 点设置 Globe 地图的中心?
下面是我尝试将地图居中在纬度 = 40 和经度 = 140 左右的失败代码:
import altair as alt
from vega_datasets import data
countries = alt.topo_feature(data.world_110m.url, 'countries')
alt.Chart(countries).mark_geoshape(
fill='#666666',
stroke='white'
).project(
type= 'orthographic'
).properties(
title='Orthographic'
).configure_projection(
center= [140,40]
)
如您所见,地图仍以大西洋为中心,可能位于 [Long, Lat] = [0, 0]。
解决方案
对于正交投影,决定投影如何居中的是rotate
属性而不是属性。center
该rotate
属性由围绕三个主轴的旋转度数组成。例如,要构建围绕 long=140, lat=40 的投影,您可以这样做:
import altair as alt
from vega_datasets import data
countries = alt.topo_feature(data.world_110m.url, 'countries')
alt.Chart(countries).mark_geoshape(
fill='#666666',
stroke='white'
).project(
type= 'orthographic',
rotate=[-140, -40 ,0]
).properties(
title='Orthographic'
)
您可以在此站点上动态探索一些可用的投影及其配置:https ://vega.github.io/vega/docs/projections/
推荐阅读
- java - 尝试并捕获一个未按预期工作的 int 数组
- java - JPA检查是否为空查询
- android - 对卡在白屏上的模拟器上的本机应用程序做出反应
- c++ - 使用 C++ 中的方法更新外部结构
- php - 如何在 Laravel 5.7 中使用 Memcached 进行会话?
- c# - ASP.NET 后台线程阻止页面访问
- android - 我的 onClickListener 在 getView 方法中工作。为什么?
- android - ffmpeg 创建的延时摄影不会在 VLC 以外的其他播放器上播放
- python - 在单词的复数或单数之间选择问题
- r - dplyr中select()的contains()和matches()之间的区别