我们如何在 Foundry-Slate 中扩展图表图例

How can we extend chart legend in Foundry-Slate

在 slate 中,图表小部件具有标签选项,可在图表的某些位置(顶部、左侧、底部...)显示图例(颜色点 + 标签名称)。

我注意到此图例 在条形图 上有 2 个限制,我想在我的 Slate 应用程序中改进它们。

出于这个原因,我决定在 HTML 小部件中制作我的标签。我得到了一个很好的结果,只是一个排序标签的函数和每个标签的 return 一个 <div class="bp3-label" style="background:${labelColor};">${labelName}<\div>。但是我失去了交互性(这是标签的便利功能)。

有没有一种方法可以将这种交互性转移到我的“自定义标签”,然后点击它选择我的条形图上的所有相关条形?

我正在考虑在 DIV 上使用 slClickEventslClickEventValue 属性来将数据推送到变量中与单击的标签相关的数据,并使条形图成为“selectedValue”属性 取决于此变量。

您走在正确的轨道上 - 我经常在 HTML 小部件中构建自定义图表图例,以便与本机图例相比更好地控制外观和交互。如果您在 Foundry 实例上搜索,您甚至会找到一个 Slate 应用程序文件夹,这些应用程序是不同 HTML 小部件模式的示例,包括一个名为 HTML - Legend 的应用程序,它显示了一些自定义 CSS 的示例和蓝图样式。

对于交互性,我可能会使用自定义 HTML 选择,而不是自定义 HTML 单击事件,因为使用自定义选择,Slate 会自动添加 selected class 添加到您已将选择添加到的任何元素,这将使更新样式以反映选择变得容易。

没有什么可以阻止您使用自定义 clickEvents 来执行此操作,但是您需要 做更多的工作来反映图例中的选择状态,否则继续没有额外的负担。

如果您在您的 Foundry 实例中搜索 Line Chart Series Selection with Custom Legend,您会找到一个准确说明这一点的示例。在该特定示例中,通过更改线条样式在图表上指示线条“选择”;对于条形图,您实际上想要在 /> 面板中 模板(带把手) 图表的选择状态。然后,当用户使用图例进行选择时,图表将反映该选择,就好像他们是通过自己点击条形来选择的一样。