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

2023-12-04

已安装的软件包

Holoviews 1.14.4、geoviews 1.9.1、matplotlib 3.4.2。

我正在尝试做什么

我正在尝试使用简单的每个功能样式GeoViews绘图库后端。我不知道如何应用不同的edgecolor=参数不同gv.Polygons同一覆盖层中的元素。由于某种原因,他们always浅蓝色...

相似地,facecolor=似乎没有效果。

可重现的代码示例

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

import pandas as pd
import geopandas as gpd
import geoviews as gv
from geoviews import opts

# loading both extensions as the full script calls for user input
# to choose between an interactive or static output

gv.extension('bokeh', 'matplotlib')

d1 = {'use': {0: 'Residential', 1: 'Residential'},
 'geometry': {0: 'POLYGON ((13.80961103741604 51.04076975651729, 13.80965521888065 51.04079016168103, 13.80963851766593 51.04080454197601, 13.80959433642561 51.04078412781548, 13.80961103741604 51.04076975651729))',
  1: 'POLYGON ((13.80977831740752 51.04313480566009, 13.80987122363639 51.04306085051974, 13.8099989591537 51.04312462457182, 13.80995486494384 51.04315973323087, 13.8099651184249 51.04316486464228, 13.80991634926543 51.04320371166482, 13.80977831740752 51.04313480566009))'}}

gdf1 = gpd.GeoDataFrame(pd.DataFrame(d1), geometry=gpd.GeoSeries.from_wkt(pd.DataFrame(d1)['geometry']), crs="EPSG:4326")

d2 = {'geometry': {1: 'POLYGON ((13.80894179055831 51.04544128170094, 13.80952887156242 51.0450399782091, 13.80954152432486 51.04504668985658, 13.80896834397535 51.04545611172818, 13.80894179055831 51.04544128170094))'}}

gdf2 = gpd.GeoDataFrame(pd.DataFrame(d2), geometry=gpd.GeoSeries.from_wkt(pd.DataFrame(d2)['geometry']), crs="EPSG:4326")

layout = gv.Polygons(gdf1, group="group1") * gv.Polygons(gdf2, group="group2")

layout.opts(
            opts.Polygons('group1', cmap=['red'], edgecolor='black', linewidth=0.5, xaxis=None, yaxis=None, backend="matplotlib"),
            opts.Polygons('group2', cmap=['lightblue'], edgecolor='blue', linewidth=0.5, backend="matplotlib"),
            opts.Overlay(fig_size=500, backend='matplotlib')
        )
        
gv.output(layout, backend='matplotlib')

gv.save(layout, "test.svg", dpi=600, backend='matplotlib')

观察到的行为的屏幕截图

这是完整数据集的屏幕。

the red polygons belong to gdf1, the blue ones to gdf3

预期行为

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

我尝试过的

而不是使用group=参数来指定每个的样式Polygon元素(我无意中通过数据着色器文档),我尝试制作多个opts按照文档中的建议调用“内联”全息视图 here。这也没有效果。

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

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

21 年 8 月 2 日 编辑

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

解释器输出:

enter image description here

gv.save() output:

enter image description here


可能是所使用的软件包之一中的错误。似乎正在 Python 3.8 上使用这些软件包版本(在使用以下命令创建的新 Anaconda 环境中)conda create -n py38 -c pyviz -c conda-forge geoviews iris xesmf python=3.8):

  • 地理视图 1.9.6
  • 全息视图1.15.4
  • matplotlib 3.7.0

下面是我尝试你的示例时得到的 svg(linewidth=2):

两个具有不同边缘颜色的多边形,省略第三个多边形

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GeoViews:将 matplotlib 样式参数应用于多边形元素 的相关文章

  • 是否可以使用seaborn 进行“缩放插图”?

    这个例子 https matplotlib org examples pylab examples axes demo html来自 matplotlib 的展示了如何进行插图 不过我正在使用seaborn 特别是kdeplot sns k
  • mpld3图,注释问题

    我正在使用 mpld3 在 Intranet 网站上显示图形 我正在使用将图形保存到字典并使用 mpld3 js 在客户端渲染它的选项 除非我想使用注释 否则该图呈现良好 这些显然是抵消的 我不明白为什么 因为即使我将偏移量设置为 0 0
  • 保存散点图动画

    我一直在尝试使用 matplotlib 保存动画散点图 并且我希望它不需要完全不同的代码来查看动画图形和保存副本 该图完美显示了保存完成后的所有数据点 这段代码是修改后的版本Giggi s https stackoverflow com a
  • matplotlib pyplot:子图大小

    如果我绘制如下所示的单个图 它将具有 x y 大小 import matplotlib pyplot as plt plt plot 1 2 1 2 但是 如果我在同一行中绘制 3 个子图 则每个子图的大小均为 x 3 y fig ax p
  • matplotlib 的上限/下限

    我想用误差线绘制一些数据点 其中一些数据点只有上限或下限 而不是误差线 所以我尝试使用索引来区分带有误差条的点和带有上限 下限的点 但是 当我尝试这样的事情时 errorbar x i y i yerr ymin i ymax i 我收到错
  • 如何删除在 Matplotlib 中使用鼠标悬停事件创建的绘图线?

    我在带有鼠标悬停事件的图中创建了一条垂直线和一条水平线 这些线旨在帮助用户选择在图中单击的位置 我的问题是 当鼠标移动到绘图上时 之前绘制的线条不会消失 有人可以解释我该怎么做吗 我在 OnOver 函数内绘制绘图后使用了 ax lines
  • Matplotlib导入错误ft2font

    我在 64 位 Mac 上的 Canopy 下安装了 Python 2 7 6 Ipython 版本为 2 1 0 这是一个非常奇怪的问题 我不确定这是否是路径文件问题 每当我导入 matplotlib pyplot 不仅仅是 matplo
  • 如何显示 matplotlib 饼图中的实际值

    我有一个饼图 绘制从 CSV 文件中提取的值 当前显示值的比例 百分比显示为 autopct 1 1f 有没有办法显示每个切片的数据集中表示的实际值 Pie for Life Expectancy in Boroughs import pa
  • Seaborn 条形图条之间没有空格

    我使用下面的代码创建了一个 Seaborn 条形图 它来自https www machinelearningplus com plots top 50 matplotlib visualizations the master plots p
  • Matplotlib:imshow 中 set_data 对绘图没有影响

    我有一个奇怪的错误 没有你的帮助我无法修复 当我设置图像后imshow在 matplotlib 中 即使我用方法更改它 它也始终保持不变set data 看看这个例子 import numpy as np from matplotlib i
  • 在 Plotly Density_Mapbox 上添加 GeoJSON 等高线作为图层

    我想在上面添加天气轮廓plotly density mapbox地图 但我不确定必要的步骤 首先 我创建了一个matplotlib等值线图以可视化数据 然后 我用了geojsoncontour创建一个geojson文件来自所说matplot
  • python中热图的层次聚类

    我有一个 NxM 矩阵 其值范围为 0 到 20 我可以使用 Matplotlib 和 pcolor 轻松获得热图 现在我想使用 scipy 应用层次聚类和树状图 我想重新排序每个维度 行和列 以显示哪些元素相似 根据聚类结果 如果矩阵是方
  • 如何获取 Matplotlib 生成的散点图的像素坐标?

    我使用 Matplotlib 生成散点图的 PNG 文件 现在 对于每个散点图 除了 PNG 文件之外 我还会also就像生成散点图中各个点的像素坐标列表一样 我用来生成散点图 PNG 文件的代码基本上是这样的 from matplotli
  • 使用 pandas 绘制带有误差线的条形图

    我正在尝试从 DataFrame 生成条形图 如下所示 Pre Post Measure1 0 4 1 9 这些值是我从其他地方计算出来的中值 我还有它们的方差和标准差 以及标准误差 我想将结果绘制为具有适当误差线的条形图 但指定多个误差值
  • 每个刻度标签都有不同的颜色

    我正在尝试使用 matplotlib python 3 5 创建一个散点图 其中 x 轴上的每个刻度都有不同的颜色 这怎么可能 例如 假设 x 刻度为 Mo Tu We Th Fr Sa Su 现在我希望 Mo 是绿色的 Tu 是蓝色的 等
  • 当图例位于轴之外时选择 matplotlib 图例

    当我修改 legend picking py 示例时 我遇到了一个有趣的怪癖 其中图例位于轴之外 如下所示 leg ax legend loc upper left fancybox True shadow True leg ax lege
  • 使用 scikit 包在 Python 中绘制集群区域的边界

    这是我处理 3 个属性 x y 值 中的数据聚类的简单示例 每个样本代表其位置 x y 及其所属变量 我的代码发布在这里 x np arange 100 200 1 y np arange 100 200 1 value np random
  • 为什么 matplotlib 默认不保存整个图形?

    这可能是几乎每个使用 matplotlib 的人都会遇到的问题 如果您生成一个图形 通常包含轴标签和图例 并使用默认设置保存它 您将获得裁剪后的图像 演示代码 import matplotlib pyplot as plt def plot
  • 如何在seaborn热图标签中使用科学计数法?

    我正在尝试在 python 中使用seaborn 获取热图 不幸的是 即使数字非常大 它也没有使用科学记数法 我想知道是否有任何简单的方法可以转换为科学记数法或任何其他合理的格式 这是显示问题的一段代码 import seaborn as
  • 使用 matplotlib 散布条件颜色

    我有以下 Pandas Dataframe 其中 a 列代表虚拟变量 我想做的是给我的标记一个cmap jet 列值后面的颜色b 除非列中的值a等于 1 在本例中我希望它的颜色为灰色 知道我该怎么做吗 您必须标记等于 1 的值并绘制 imp

随机推荐

  • 使用 Retrofit 获得通用 URL 的任何方法

    我有几个接受相同 GET 参数的 URL 主要用于分页目的 如下所示 public interface AsynchronousApi GET api users public void listUsers Query limit Inte
  • 从jquery处理android中的后退按钮

    我们用 jQuery 开发了一个与 android 集成的应用程序 只有一个 Activity 从这个活动中 我们加载一个 HTML 文件 在这个文件上我们显示和隐藏 div 内容 查看此处提供的网页并按 android 中提供的后退按钮时
  • 在 FullCalendar 中显示周数

    我正在寻找一种在议程周视图上显示周数的方法 我试过了这个方法但没有结果 实际上 我需要像这样将数字放在日历标题中 titleFormat month Calendar br MMMM yyyy week Calendar br Week W
  • log_softmax() 如何实现以更快的速度和数值稳定性计算其值(和梯度)?

    MXNet 和 PyTorch 都提供了计算 log 的特殊实现 softmax 速度更快 数值更稳定 但是 我在这两个包中都找不到该函数 log softmax 的实际 Python 实现 谁能解释一下这是如何实现的 或者更好的是 给我指
  • 快速行插入 UITableView 会导致 NSInternalInconsistencyException

    我有一个 UITableView 有时会快速插入新行 新行的插入由通知观察者处理 该通知观察者监听每当基础数据发生更改时触发的更新通知 我在所有数据模型更改和实际通知发布本身周围使用 synchronized 块 希望每个增量数据更改 和行
  • 遍历已填充的行

    因此 我尝试使用 VBA 迭代 Excel 电子表格中的工作表 我想遍历每一行 然后遍历每一列 尽管进行了谷歌搜索 但我实际上无法找到一种直观的方法来做到这一点 我假设必须填充一行的第一个单元格 如果没有 那么那一定是结束 我可以强制执行这
  • 为什么我们必须在 C# 中同时定义 == 和 !=?

    C 编译器要求每当自定义类型定义运算符时 它还必须定义 see here Why 我很好奇为什么设计者认为有必要 以及为什么编译器不能在只有另一个运算符存在时默认为其中一个运算符提供合理的实现 例如 Lua 允许您仅定义相等运算符 而您可以
  • Javascript 正则表达式和边界

    一位同事问我一个正则表达式问题 我似乎无法找到并回答他 我们使用边界在文本编辑器中突出显示特定长度的文本 但这里有一些示例代码显示了该问题 问题是 第一个文字 str replace 有效
  • 如何在反应中显示表格中的对象数组

    最近在学习react 我将状态设置为对象数组 我想在页面上的表格中显示该数组 每个对象在一行上 我一直在研究地图 但是我在理解它时遇到了一些困难 我能够在代码中的不同位置很好地使用映射来映射array 但我在通过映射时遇到问题对象数组 此代
  • 如何使用 Google Visualization Query 搜索电子表格

    我有这个简单的网页它使用 google visualization Query 从中提取三个特定单元格的值电子表格 然后根据三个相应输入字段的唯一 id 属性设置其值 google load visualization 1 packages
  • 从子路由渲染的 Jade 模板链接到静态文件

    我在使用 Node js Express Jade 时遇到了一个非常基本的问题 该问题非常难以描述 在我的 node js 应用程序中 我使用 Express 框架来路由 HTTP 请求 我还使用 Jade 模板作为视图 它们本身链接到我通
  • 如何从数据库表中为用户添加地理位置标记?

    我想对每个用户进行地理定位 我在用户表中添加两个字段纬度和经度 这是我的地图页面map html
  • 使用索引向量重新排序向量[重复]

    这个问题在这里已经有答案了 我想对向量中的项目重新排序 使用另一个向量来指定顺序 char A a b c size t ORDER 1 0 2 vector
  • 从 android 活动返回值到片段

    我有片段 F 它调用活动 A 在活动 A 中按下按钮 B 时 活动必须将选定的数组列表值返回到片段 F 并完成活动 A 这可能吗 我从 Activity 知道您可以发送意图如下的数据 Bundle bundle new Bundle bun
  • GORM 阻止为域创建外键约束

    我正在 Grails 中开发一个基于 Web 的应用程序 我遇到过一种情况 我想尝试禁止 GORM 在表中的字段上创建外键约束 我有一个域类 它是类层次结构的一部分 域类本质上充当到目标域的链接 目标域可以是不同的类型 并且该链接域的每个子
  • 如何在新选项卡/窗口中打开每个 WordPress 帖子?

    我有一个wordpress博客的主页显示 10 篇最新帖子的列表 现在 每当我单击任何帖子标题时 都会在同一选项卡中打开一个新帖子 但在这里我想让它在新选项卡中打开 那么 我该怎么做呢 Wordpress 中的每个主题都有不同的模板 尝试寻
  • Unity3D 将 json 发布到 ASP.NET MVC 4 Web Api

    如何将 json 值发布到 ASP NET MVC 4 Web Api 控制器 我尝试了几种方法 但无法使其发挥作用 首先 我简化了控制器操作 HttpPost public Interaction Post Interaction fil
  • qt中是否有范围为(0,0)的圆形QProgressbar?

    我希望有circular QProgressbar它的外观必须看起来像正常的QProgressbar范围在 0 到 0 之间 线性代数的代码QProgressbar是像下面这样的东西 QProgressBar progressBar new
  • std::map 的用途是什么?

    谁能解释我从这个简单程序中得到的输出std map 请注意 我插入p进入地图 但没有q但它说它找到了它们 而且还说地图中只有 1 个元素 include
  • GeoViews:将 matplotlib 样式参数应用于多边形元素

    已安装的软件包 Holoviews 1 14 4 geoviews 1 9 1 matplotlib 3 4 2 我正在尝试做什么 我正在尝试使用简单的每个功能样式GeoViews和绘图库后端 我不知道如何应用不同的edgecolor 参数