如何解决Vega-Lite 的某些投影在 Altair 中不起作用
根据堆栈跟踪,我可以看到 altair 只接受以下预测 -
['albers','albersUsa','azimuthalEqualArea','azimuthalEquidistant','conicConformal','conicEqualArea','conicEquidistant','equalEarth','equirectangular','gnomonic','identity','mercator','naturalEarth1','orthographic','stereographic','transverseMercator']
然而,我真的很想有一个基于多面体的投影,特别是 Cahill-Keyes。经过一番搜索,我找到了这个页面,在那里我可以看到所有的 Vega-Lite 投影 - https://observablehq.com/@vega/vega-lite-cartographic-projections 它确实有一些多面体投影。
但是,altair 似乎不支持其中的很多。我认为通常 Vega-Lite 中可用的任何内容都可以使用 altair 完成,所以我想知道为什么 altair 限制了投影数量?
解决方法
Altair 跟随 Vega-Lite schema。
Vega-Lite 列出了 ProjectionType
定义中支持的投影;据此,允许的投影类型如下:
"ProjectionType": {
"enum": [
"albers","albersUsa","azimuthalEqualArea","azimuthalEquidistant","conicConformal","conicEqualArea","conicEquidistant","equalEarth","equirectangular","gnomonic","identity","mercator","naturalEarth1","orthographic","stereographic","transverseMercator"
],"type": "string"
},
如果您指定的投影与其中之一不匹配,Altair 将引发错误。
,通过一些技巧,您可以使用 vega-projection-extended
项目获得更多投影。但是有一些问题,引用 Observable site 上的 Jeffrey Heer 的话,您可以在其中看到这些预测的实际效果 -
请注意,由于缺少对地球球体的裁剪,某些投影可能会显示伪影。我们正在努力!
在 Jupyter Notebook 中使用 Altair,您可能无法使用它。但是,如果您确定某个投影,那么您可以导出 HTML 或 json 规范并添加 vega-projection-extended
库并将现有投影替换为您想要的投影。瞧,Vega-Lite 将显示投影。
您可以将投影库添加为 -
<script src="https://cdn.jsdelivr.net/npm/vega-projection-extended@2"></script>
在 vegaEmbed 规范中,您可以将投影名称更改为 -
......."projection": {"type": "interruptedBoggs"}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。