为什么 zk 生成的图表图像不显示 y 数字?

Why does the chart image generated by zk does not shows the y numbers?

我在项目中使用 ZK Framework,我需要构建此图表并将其导出为图像。

这是我的图表:

这是正在生成的图像:

如您所见,每当生成图像时,Y 轴上的数字就会消失,并且其范围也会发生变化。有谁知道为什么会这样?

祖尔

<charts id="chrtConsumoFaturado" type="line" title="Gráfico dos últimos 12 meses" />

控制器

this.chrtConsumoFaturado.setHeight(222);
this.chrtConsumoFaturado.getYAxis().setTitle("Valores");
this.chrtConsumoFaturado.getYAxis().getLabels().setFormat("R$ {value},00");
this.chrtConsumoFaturado.getExporting().getButtons().setEnabled(true);

this.chrtConsumoFaturado.getTooltip().setValuePrefix("R$ ");
this.chrtConsumoFaturado.getTooltip().setValueSuffix(",00");

this.chrtConsumoFaturado.setModel(new DefaultCategoryModel());

一些观察:导出按钮已启用;其他值是正确的,我使用的是 zk 7.0.0

由于您没有指定轴刻度间隔,zkcharts 会根据其大小导出轴刻度。但是导出的图像大小与您在浏览器屏幕上看到的大小不同。它是 600px 宽 * 400px 高,如果你没有指定图表的 width/height.

由于您没有指定宽度,所以zk图表导出图表时默认宽度(600px)和默认比例。因此,结果图像为1200 * 444。高度444是指定高度乘以默认比例222 * 2。

如果您尝试在浏览器中将图表的大小缩小到 600 像素,您也会看到 y 轴刻度发生变化。此更改后的结果与您当前导出的图像匹配。 例如:

原始浏览器屏幕,更宽[=4​​1=]

更窄

因为旋转后的x轴标签消耗了更多space的高度,高度缩小了,所以y轴标签的个数变少了。

我认为至少有两种解决方案:

  1. 扩大导出源宽度 将导出源宽度设置为与您的屏幕宽度接近,例如

chart.getExporting().setSourceWidth(1200);

https://api.highcharts.com/highcharts/exporting.sourceWidth

  1. 指定y轴刻度间隔 强制滴答间隔

chart.getYAxis().setTickInterval(20);