vega-lite - 从 Vega 场景图中读取项目颜色的正确方法是什么?
问题描述
我正在使用vega
具有自定义配色方案的图形来渲染图形。该图还有一个自定义工具提示,通过vega-tooltip
. 我希望工具提示与悬停的系列颜色相同。这需要知道被悬停的特征的颜色。
到目前为止唯一有效的是这样的:
let pathGroup = [];
const view = new vega.View(parsed, {
container: $el,
hover: true,
renderer: "canvas",
tooltip: new vt.Handler({
formatTooltip: (value, sanitize) => {
const myPath = pathGroup.filter((s: any) => s.datum.key === value.key)[0];
const color = myPath.items[0].items[0].stroke;
return `
<div id="vg-tooltip-inner">
<span id="vg-tooltip-inner-key" style="background: ${color}">
${sanitize(value.key)}
</span>
<span id="vg-tooltip-inner-value">
${sanitize(value.value)}
</span>
</div>
`;
},
}).call,
});
pathGroup = view.scenegraph().root.items[0].items.filter(
(item) => item.name === "layer_0_pathgroup"
)[0].items;
我最初的想法是在我的工具提示编码中添加一个计算字段,但我无法弄清楚如何以stroke
这种方式访问。我也不想依赖硬编码的名称,如"layer_0_pathgroup"
, 或内部数组中的位置。
有没有更清洁或更合适的方式来访问这样的财产stroke
?
解决方案
推荐阅读
- xcode - 为什么即使构建阶段不包括资源,我也会收到复制捆绑资源警告?
- sql - Power bi 报告
- speech-recognition - 认知服务 - 自定义语音 C++
- sql - 从按两列分组的两个表中选择不匹配的行
- python - Numpy - 函数不应该更新全局变量
- c# - 离线 SOAP 服务
- php - 在 SqlServer 上工作但在 PHP 上不工作的查询(超过 4000 个字符的文本字段)
- angular - firestore 无法获取文档 ID QuerySnapshot.docChanges 已更改
- python - IndexError:使用 jupyter notebook 时列出的索引超出范围
- c++ - FFTW _GNUC_ 未定义为预处理器宏