问题标签 [geoviews]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
36 浏览

python - 每个多边形的直方图,而不是每个顶点

我想绘制基于多边形属性的直方图:

在这种情况下,我想要直方图BoroCode

但是,这会创建一个直方图,它不是按多边形计算,而是按顶点计算,在 y 轴上具有相当高的数字:

在此处输入图像描述

它在您第一次提取数据框时起作用:

在此处输入图像描述

但是,在现实生活中,我想在 a 中更新这个直方图Stream,所以据我了解,这不适用于 matplotlib 输出。如何获得第一个版本的每个多边形的直方图?我已经尝试创建直方图的规范版本,但是我不清楚如何再次乘以多边形顶点的数量。

0 投票
0 回答
56 浏览

matplotlib - GeoViews:将 matplotlib 样式参数应用于多边形元素

已安装的软件包

holoviews 1.14.4,geoviews 1.9.1.,matplotlib 3.4.2。

我正在尝试做的事情

我正在尝试使用GeoViewsmatplolib后端应用简单的按功能样式。我无法弄清楚如何将不同的edgecolor=参数应用于gv.Polygons同一叠加层中的不同元素。出于某种原因,它们总是浅蓝色的……

同样,facecolor=似乎也没有效果。

可重现的代码示例

这使用了完整数据集的一个非常小的样本。

观察到的行为的屏幕截图

这是来自完整数据集的屏幕。

红色多边形属于 gdf1,蓝色多边形属于 gdf3

预期行为

红色填充多边形属于gdf1并且应该具有黑色边缘颜色,但它是浅蓝色。蓝色填充多边形属于gdf2并且应该具有浅蓝色填充和蓝色边缘颜色,尽管相同的颜色似乎应用于填充和边缘。

我试过的

我没有使用该group=参数来指定每个元素的样式(我不小心通过datashader 文档Polygon偶然发现),而是尝试按照 HoloViews 文档中的建议进行多次联”调用。这也没有效果。opts

此外,cmap=['color']这是我发现让GeoViews 使用自动检测到的“使用”列gdf1作为vdim颜色映射的唯一方法。这是规范的方法和/或预期的行为吗?color=或者facecolor=即使在调用时列出它们似乎也没有效果gv.help(gv.opts.Polygons)

简而言之,我不明白如何为 matplotlib 后端应用这些特定的样式参数,并且非常感谢任何指针。

21 年 8 月 2 日 编辑

另一个奇怪的行为似乎是,在我的情况下,VSCode-Python 解释器中的图形似乎忠实地表示了符号系统,看起来与 .svg 生成的输出不同gv.save(layout, "test.svg", dpi=600, backend='matlplotlib')。下图是同一脚本运行的输出。

解释器输出:

在此处输入图像描述

gv.save()输出:

在此处输入图像描述

0 投票
1 回答
90 浏览

holoviews - Datashader:GeoDataFrames 的分类颜色映射

已安装的软件包

数据着色器 0.13.0,holoviews 1.14.4,geoviews 1.9.1.,散景 2.3.2。

我正在尝试做的事情

我正在尝试使用 Datashader 重新创建一个等值线图,其中一种颜色映射到大型 GeoDataFrame 中的一个类别,遵循管道页面中的这个示例以及这个以及这个SO,它们的语法和所有使用点都略有不同例如,而不是多边形。

可重现的代码示例

下面是完整数据集的一个小样本。

预期行为

我希望所有多边形都被光栅化并以每个类别的单一颜色显示。

观察到的行为

完整的数据集产生几乎是白色的图像,一些轮廓非常隐约可见。

在此处输入图像描述

如果我改变背景颜色,一些多边形会更加突出,尽管即使是标题也只是隐约可见。

在此处输入图像描述

这是否与 Datashader 计算有关,正如 Pipeline 笔记本所提到的,“根据每个类别对该像素的贡献,每个像素的透明度和颜色”?但是由于每个类别都是每个像素的唯一贡献者(即在这种情况下与其他类别没有空间重叠),为什么 alpha 似乎设置得如此之低以至于看不到任何东西?我还尝试了agg=ds.by('category')具有相同结果的聚合器。

顺便说一句,如果我删除“类别”列(否则会导致“输入必须是数字”错误)并将 GeoViews 与 HoloViews 结合使用,rasterize我可以毫无问题地使用一种颜色来可视化多边形,但我还没有弄清楚如何使用这种方法在同一个 Bokeh/或 mpl 图上绘制具有不同颜色映射的多个数据着色 GDF(通常的 HoloViews“叠加乘法”在这种情况下不起作用)。

0 投票
0 回答
46 浏览

python - 覆盖面板布局组件?

是否可以覆盖面板布局组件?即,是否有类似“绘图级别”的pn.Row// pn.Columnpn.Pane下面是一些示例代码来说明:

是否可以histpane“悬停” mappane,以便仍然可以操作地图(如缩放、单击、平移)?

0 投票
0 回答
34 浏览

geoviews - GeoViews:具有 matplotlib 后端的 GeoDataFrames 的分类图例

已安装的软件包

geoviews 1.9.1.,matplotlib 3.4.2。

我正在尝试做的事情

对于Bokeh后端添加分类图例GeoViews是通过代理艺术家完成的,如卡特里娜飓风示例中所述,我设法让它工作,但这对Matplotlib后端有什么作用?Katrina 轨道案例的相应mpl 示例,特别是不包括图例。其他mpl带有图例的示例都使用颜色条。

HoloViews 图例示例表明这是自动完成的,所以我认为同样适用,但是GeoViews当尝试使用 GeoDataFrames 作为输入来重现示例时gv.Polygons,没有出现图例。

可重现的例子

任何指针都将不胜感激(如果可能的话,也可以在几周前我的一个较早的相关 SO 问题上)。

0 投票
1 回答
82 浏览

python - GeoViews:使用 matplotlib 后端添加平铺底图

使用matplotlib后端,是否可以将诸如 OSM 之类的图块底图添加到GeoViews绘图中,例如通过某种方式调用contextily?使用Bokeh后端,这是通过gv.tile_sources然后将其添加到叠加层来完成的,但是mpl后端是否有类似的功能?

回复后编辑

添加一个可重现的示例,假设一个在后端之间切换,并在 EPSG:4326 中使用邻域级多边形 gdfs。

最初让我认为不可能添加底图的原因是(1)没有定义 WMTS 缩放级别(导致绘制无法辨认的像素化文本而不是特征),并且在阅读了 James 的回答后,(2)将切片图层添加到布局最后,而不是第一个,这导致瓷砖覆盖多边形层(在散景后端不是问题,但显然使用 matplotlib 确实很重要)。

0 投票
1 回答
26 浏览

python - Geoviews FilledContours:保持填充颜色但删除计数线

我想使用geoviews绘制类似于 kdeplot 的东西,而无需实际绘制轮廓线。geoplot库支持这样的东西:

在此处输入图像描述

我怎样才能在geoviews中制作这样的情节?

这是我设法通过geoviews生成的kdeplot类型的一个非常基本的示例,默认情况下会绘制分隔不同强度的黑线:

在此处输入图像描述

我找不到gv.FilledCountours删除这些行的任何参数设置。

0 投票
1 回答
102 浏览

python - Geoviews 错误:“提供的数据不包含指定的维度”

当我尝试绘制 Postgis Linestring 时,感谢gv.Path()or hvplot(geo=True),我有这个错误:Supplied data does not contain specified dimensions, the following dimensions were not found: ['Longitude', 'Latitude']

gdf.head()

当我尝试可视化时:

当我这样做时hvplot(geo=False),它会起作用,但我想拥有一张底图并从 Geoview 的所有选项中受益。有人会有想法吗?

0 投票
0 回答
17 浏览

google-colaboratory - 如何让 Geoviews 在 Google Colab 中工作

我已经使用 geoviews 在 jupyter notebook 中构建了一些可视化,并且正在寻找一种更好的方式来共享它们,而无需其他工程师/分析师需要启动他们自己的 conda 环境。

我一直在尝试调整我的 Jupyter 笔记本以在 google colab 中运行,因为其他人更容易让它运行,但是当我尝试调用时,我在 colab 上遇到内核中断错误

gv.Points(数据, kdims=['lat', 'long'], vdims=['id'])

我的 geoviews 版本是 1.9.2。我已经能够让一些全息视图可视化工作。但我真的需要让一些地图可视化工作!

colab上的错误日志是:

  • WARNING WARNING:root:kernel 8f2d5acc-b562-43ab-8b4c-cadd62e1e02c 重新启动

  • INFO KernelRestarter:重启内核(1/5),保留随机端口

  • 警告 python3: LineString.cpp:121: const geos::geom::CoordinateSequence* geos::geom::LineString::getCoordinatesRO() const: Assertion '0 != points.get()' 失败。

提前致谢!