Vaadin 热图不支持 40x40 (1600) 点?

Vaadin heatmap does not support 40x40 (1600) points?

在 Vaadin 14.6.1 中,我试图创建一个 Vaadin 热图来愚弄来自 here 的文档/示例。

不过,我遇到了几个problems/questions,下面按重要性降序排列:

  1. 热图支持 30 行 x 30 列;但是当我尝试 40 行 40 列时,整个热图显示单一颜色(在我的例子中是蓝色)。
  2. 是否可以手动设置配色方案的最小数值和最大数值。这样,如果有一天我绘制我的数据并且它的值在 0 到 1 的范围内,但是在另一天的另一个数据集上,数值范围在 0 到 0.5 之间,配色方案 range 不会自动更改(介于 0 和 0.5 之间)并使用户感到困惑。
  3. documentation中列出了以下方法,但在Vaadin 14.6.1中似乎不存在
plotOptions.setBorderColor(SolidColor.WHITE);
plotOptions.setBorderWidth(2);
  1. 当我将鼠标悬停在数据点上时,工具提示是否可以显示数值(而不是 x、y 坐标或系列名称等? )
  2. 数据点的数量有限制吗?我希望如果上面的 #1 得到解决,我可以绘制 100 x 100(即 10,000)点热图。
  3. 如果我绘制 100×100,x 和 y 轴上会有很多标签。在我的例子中,x 轴和 y 轴实际上是数字的,所以我按照文档的建议做了,只是在 x 轴和 ya 轴点放置了类别标签。但是,有没有办法只显示每个“第n个”标签,从而使x轴和y轴不那么拥挤? (这基本上会模仿 Vaadin 对普通折线图的 x 轴和 ya 轴所做的工作)。

我对 Vaadin Chart 不是很熟悉,但我可以评论这些问题:

(1) 对于 40x40 的项目,您超过了 1000 的阈值,此时图表出于性能原因切换到“turbo”模式。这似乎与热图系列不兼容。您可以通过设置 plotOptions.setTurboThreshold(0);

来禁用 Turbo 模式

(2) 不幸的是 ColorAxis 不支持这个,它只有一个 API 用于最小和最大颜色。不过,这绝对是一个有效的用例,而且它似乎得到了 Vaadin Chart 在后台使用的 Highcharts 库的支持。您应该考虑在 Github repo.

中为此打开一个功能请求

(3) 这似乎是文档问题。这些方法在以后的 Vaadin 平台版本中可用,但在 14.6 中不可用。

(5) 理论上不会,但实际上由于 DOM 元素过多,浏览器的性能会受到巨大影响(100x100 的快速测试会使浏览器冻结 10 秒)。恐怕该组件并不是真正为这种极端用例而设计的。在这种情况下,最好使用使用 canvas 的低级 JS 绘图库,或者在服务器端绘制图像并在浏览器中显示。也许您还可以考虑修改您的用例,以便您只显示一个数据切片并允许用户在切片之间切换。