首页 > 解决方案 > 隐藏所有数据集(chartjs)时如何显示比例?

问题描述

我使用 django 和 chartjs 来渲染图表。当我使用图例 onclick 函数隐藏所有数据集时,y 轴将显示为这样,而我不想显示任何内容,甚至是网格线。

这是示例图表:

在此处输入图像描述

有什么解决方案或建议吗?

标签: djangochart.js

解决方案


我按照 Daniel 的建议,重写了自定义的 onClick 函数。现在它完全按照我的预期工作。

//start
const allHidden = ci.data.datasets.every((dataSet, index) => ci.getDatasetMeta(index).hidden)

const rightAxisDataSetsAllHidden = ci.data.datasets.every((dataSet, i) => {
if (ci.getDatasetMeta(i).yAxisID === "rightAxis") {
  if (ci.getDatasetMeta(i).hidden === null) {
    return false}
  else {
    return true
  }
}
else {
  return true
}})

const leftAxisDataSetsAllHidden = ci.data.datasets.every((dataSet, i) => {
if (ci.getDatasetMeta(i).yAxisID === "leftAxis") {
  if (ci.getDatasetMeta(i).hidden === null) {
    return false
  }
  else {
    return true
  }
}
else {
  return true
}})

if (ci.options.scales.yAxes.length != 1) {
  ci.options.scales.yAxes[0].display = !leftAxisDataSetsAllHidden
  ci.options.scales.yAxes[1].display = !rightAxisDataSetsAllHidden
}
else {
  ci.options.scales.yAxes[0].display = !leftAxisDataSetsAllHidden;
}
ci.options.scales.xAxes[0].display = !allHidden;
//end

推荐阅读