如何在全息视图+散景中获得带有图例标签的全高垂直线?

2023-12-08

我想在其中绘制一条垂直线holoviewsbokeh后端有一个出现在我的图例中的标签。我需要这条线是绘图的完整高度,无论它是单独的还是与其他元素重叠。我怎样才能实现这个目标?

Example

我在示例中添加了曲线图,因为否则即使可以出现在图例中的元素也只是使用其标签作为标题。

import numpy as np
import holoviews as hv
hv.extension("bokeh")

x = np.linspace(0, 1)
curve = hv.Curve((x, np.sin(x)), label="sin(x)")
vline = hv.VLine(0.5, label="vline")
curve * vline

这给出了以下情节:

enter image description here

它没有垂直线的标签。如何让标签显示出来?


正如中提到的这个问题但文档中还没有,VLine and HLine不会出现在图例中,并且没有计划添加对它们的支持(基本上,在bokeh它们的创建方式不同,因此没有简单的方法将它们放入图例中)。一个可以用Spikes反而。然而,正如记录在另一个问题,尖峰不能很好地重叠。特别是,如果没有给出明确的高度,它们不会将其高度调整为绘图的完整高度。这是我想出的两个解决方法。

解决方法1

您可以明确地找出垂直线应覆盖的其他元素的高度,并使用它来创建适当高度的尖峰。这是可行的,但它相当脆弱,因为您需要充分了解可能被尖峰覆盖的所有内容来适应它。

import numpy as np
import holoviews as hv
hv.extension("bokeh")

x = np.linspace(0, 1)
curve = hv.Curve((x, np.sin(x)), label="sin(x)")
height = curve.data["y"].max() - curve.data["y"].min()
spikes = hv.Spikes(([0.5], [height]), vdims="height", label="mid")
spikes * curve

image

解决方法2

这同时使用了VLine and a Spikes。尖峰将不可见,除非它会为图例提供一个条目。 vline 将位于尖峰的顶部,并且 vline 已自行调整以填充图形的整个高度。这需要创建一个额外的元素,但它更强大,因为您可以将这个尖峰和 vline 的乘积与任何其他元素叠加,并且仍然得到一条填充绘图高度并出现在图例中的线。不过,由于图例条目是基于尖峰的,因此只有在确保它们具有相似的外观(例如 vline 和尖峰具有相同的颜色)时,它才会看起来像 vline。

# need to make sure the colors are the same for spikes/vlines
# would look a bit better if I adjusted the spike thickness too
spikes = hv.Spikes([0.5], label="mid").opts(color="black")
vline = hv.VLine(0.5).opts(color="black")

spikes * curve * vline

image

将来,Spikes当没有明确给出高度时,希望将自身缩放为全高,然后就不需要这些解决方法了。

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

如何在全息视图+散景中获得带有图例标签的全高垂直线? 的相关文章

随机推荐

  • 精灵套件中的裁剪/蒙版圆形图像节点会产生锯齿状边缘

    是否可以为没有锯齿状边缘的图像节点提供圆形蒙版 裁剪 按照苹果公司的这个例子 https developer apple com reference spritekit skcropnode 结果并不理想 您可以点击链接查看 let sha
  • 从服务获取登录用户名

    我有一项必须登录本地管理员才能安装的服务 此服务的目的是在用户登录或注销时记录其用户名 我终于找到了一些我认为可以工作的WMI代码 但它仍然返回管理员 为什么这不起作用 var query new ObjectQuery SELECT FR
  • 放大/缩小时保持地图上 D3 对象大小不变

    我正在遵循以下示例http bl ocks org d3noob raw 5193723 示例中绘制的圆圈在放大时会增大 我无法找出保持圆圈大小相同的方法 有任何想法吗 Edit1 关于如何保持饼弧半径恒定的任何想法 我已经找到了保持圆半径
  • WPF 网页浏览器控件与 winforms

    我正在创建一个 wpf 应用程序 其中使用网络浏览器控件 无论如何 有时我需要查找 html 元素 调用点击和其他基本功能 在 winforms webbrowser 控件中 我可以通过执行以下操作来实现此目的 webBrowser1 Do
  • 编写扩展方法来调用控件的更好方法?

    我有这个通用函数来调用 WinForm 控件 public static void Invoke this Control c Action action if c InvokeRequired c TopLevelControl Invo
  • 在 C++/Qt 中获取特定于平台的行尾字符

    有什么办法可以为任何平台获得正确的行尾符号吗 我的意思是 我可以使用 n对于 Windows 和 Unix 如果我想将 EOL 写入文件 但也有 r n如果我要在二进制数据中进行搜索 这将很重要 所以 我需要类似的东西Environment
  • 如何设置Jbutton的颜色

    如何设置 JButton 的颜色 我已经尝试过这个 button setBackground Color red 但没有成功 这只是改变按钮边框的颜色 然后我尝试覆盖paintComponents public void paintComp
  • 如何从仅包含指定类型的类成员的类/接口定义类型

    让我在这个例子中解释一下我的想法 假设我有这门课 class Class1 f1 string f2 string f3 number f4 Date 如果我需要一个带有类型成员的类型string来自那个班级 例如我可以做 type Cla
  • 对逗号分隔数字列表进行排序的 Pythonic 方法

    输入样本 20 71146620 100 26867616 10 02513583 10 52811698 100 23859051 我从文件中将其作为命令行参数读取到列表中 lin i strip for i in open sys ar
  • Android - 设置片段ID

    我怎样才能设置一个Fragment s Id这样我就可以使用getSupportFragmentManager findFragmentById R id 您无法以编程方式设置片段的 ID 然而 有一个String tag您可以在 Frag
  • 在 NodeJS 中从上传的文件中读取缓冲区数据

    我正在使用 express 模块上传文件 我必须使用读取上传图像的 EXIF 数据节点 exif 我不想将文件存储在磁盘上 并且上述模块支持从缓冲区读取 EXIF 数据 我需要从上传的图像中读取缓冲区数据 这是上传代码 var expres
  • 是否可以将 Google Apps 脚本 Web 应用程序发布到 G Suite Marketplace?

    我知道可以将 Google 脚本 Web 应用程序发布到 Chrome 网上应用店 但也可以在 Google Suite Marketplace 中发布吗 GAS 编辑器中没有 发布到市场 选项 但我查看了 Chrome Web Store
  • Kafka Log 压缩返回具有相同键的两条记录

    我在卡夫卡中的日志压缩有一个奇怪的行为 我创建了一个具有以下配置的主题 kafka topics zookeeper create topic myTopic partitions 12 replication factor 3 confi
  • 如何使用 cx_oracle 执行 SQL 脚本

    我正在尝试在 Oracle 数据库上执行 SQL 脚本 从文件中读取 我尝试了很多方法 但没有一个有效 我有以下方法 def connect cx oracle dns tns cx Oracle makedsn config DB HOS
  • PowerShell 中的高级过滤器

    我正在尝试通过 PowerShell 使用 Excel 高级过滤器 但我没有任何运气 我可以通过运行以下代码成功使用自动过滤器 rangetofilter worksheet2 usedrange select excel selectio
  • 在Python2.7中实现Barrier

    我使用 Barriers 在 Python3 中实现了这段代码 我想在 Python2 7 中获得相同的功能 但我不知道要使用哪个同步原语 因为 Python2 7 中不存在屏障 import threading import time f
  • 可以将其当前计数减少 N (N>=1) 的信号量?

    我正在实现一个流量控制组件 限制可以发送的最大请求 每个工作线程可以发送单个请求或一批请求 但任何时候待处理请求的总数都不应超过最大数量 我最初想用 SemaphoreSlim 来实现 将信号量初始化为最大请求计数 然后当工作线程要调用服务
  • 如何将 Objective-C BOOL 转换为 Swift 的 Bool,并将 NSError** 作为返回参数之一

    我有一个项目 我正在尝试使用 Swift 来创建新模块 对于其中一个新类 我使用 Swift 3 2 中 Objective C 类的现有方法 以下是该方法的签名 BOOL canLoginWithUsername NSString use
  • 元组的 StackOverflowError

    我编写了一个递归函数 用于在 julia 中获取较大数组中的对象 出现以下错误 ERROR LoadError StackOverflowError in cat t at abstractarray jl 831 in recGetObj
  • 如何在全息视图+散景中获得带有图例标签的全高垂直线?

    我想在其中绘制一条垂直线holoviews与bokeh后端有一个出现在我的图例中的标签 我需要这条线是绘图的完整高度 无论它是单独的还是与其他元素重叠 我怎样才能实现这个目标 Example 我在示例中添加了曲线图 因为否则即使可以出现在图