当前位置: 首页 > 知识库问答 >
问题:

带Chart.js的垂直网格线问题

董永宁
2023-03-14

我正在使用图表.js库来创建折线图,由于需要大量标签,我使用Chartjs折线图上的限制标签数量问题中的方法跳过了一些标签,另见下文。

这是我用来创建这个图表的代码:

Chart.defaults.global.elements.point.radius = 2;

var ctx = document.getElementById("graph-1-met");

var myLineChart = new Chart(ctx, {
    type: 'line',
    data: {
        labels: [0,'','','','','',1,'','','','','',2,'','','','','',3,'','','','','',4,'','','','','',5,'','','','','',6,'','','','','',7,'','','','','',8,'','','','','',9,'','','','','',10,'','','','','',11,'','','','','',12,'','','','','',13,'','','','','',14,'','','','','',15,'','','','',''],
        datasets: [
            {
                data: [65, 59, 80, 81, 56, 55, 65, 59, 80, 81, 56, 55, 65, 59, 80, 81, 56, 55, 65, 59, 80, 81, 56, 55, 65, 59, 80, 81, 56, 55, 65, 59, 80, 81, 56, 55, 65, 59, 80, 81, 56, 55, 65, 59, 80, 81, 56, 55, 65, 59, 80, 81, 56, 55, 65, 59, 80, 81, 56, 55, 65, 59, 80, 81, 56, 55, 65, 59, 80, 81, 56, 55, 65, 59, 80, 81, 56, 55, 65, 59, 80, 81, 56, 55, 65, 59, 80, 81, 56, 55, 65, 59, 80, 81, 56, 55],
                backgroundColor: "rgba(0,204,255,0.2)",
                borderColor: "rgba(0,204,255,1)",
                borderWidth: 2
            }
        ]
    },
    options: {
        legend: {
            display: false
        },
        scales: {
            xAxes: [{
                scaleLabel: {
                    display: true,
                    labelString: 'Blowing Time (min)'
                }
            }],
            yAxes: [{
                ticks: {
                    beginAtZero:true
                },
                scaleLabel: {
                    display: true,
                    labelString: 'Undissolved Lime (tonnes)'
                }
            }]
        }
    }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.2.1/Chart.min.js"></script>
<canvas id="graph-1-met"></canvas>

我想注意几件事:

> < li >如果我使用实际标签(例如< code>[0,1,2,3,4,...])黑线不会出现。这让我相信我使用空字符串(< code>'')时出了问题。 < li>

当我将标签更改为:< code>[0,1,'','',...]黑线现在出现在第一次出现< code>''时。在这种情况下是第三标签位置。

为了解决这个问题,我尝试将网格线的颜色设置为白色,这导致黑线不再出现。不幸的是,这种解决方案使图表看起来更糟。

问:为什么会出现这条黑线,有没有办法删除它?

共有1个答案

卢伟志
2023-03-14

好吧,这可能很奇怪,但我刚刚从< code>labels数组中移除了每个< code>'',它就像它应该的那样呈现了。

jsfiddle

Chart.defaults.global.elements.point.radius = 2;

var ctx = document.getElementById("graph-1-met");

var myLineChart = new Chart(ctx, {
  type: 'line',
  data: {
    labels: [0, , , , , 1, , , , , , 2, , , , , , 3, , , , , , 4, , , , , , 5, , , , , , 6, , , , , , 7, , , , , , 8, , , , , , 9, , , , , , 10, , , , , , 11, , , , , , 12, , , , , , 13, , , , , , 14, , , , , , 15, , , , , ],
    datasets: [{
      data: [65, 59, 80, 81, 56, 55, 65, 59, 80, 81, 56, 55, 65, 59, 80, 81, 56, 55, 65, 59, 80, 81, 56, 55, 65, 59, 80, 81, 56, 55, 65, 59, 80, 81, 56, 55, 65, 59, 80, 81, 56, 55, 65, 59, 80, 81, 56, 55, 65, 59, 80, 81, 56, 55, 65, 59, 80, 81, 56, 55, 65, 59, 80, 81, 56, 55, 65, 59, 80, 81, 56, 55, 65, 59, 80, 81, 56, 55, 65, 59, 80, 81, 56, 55, 65, 59, 80, 81, 56, 55, 65, 59, 80, 81, 56, 55],
      backgroundColor: "rgba(0,204,255,0.2)",
      borderColor: "rgba(0,204,255,1)",
      borderWidth: 2,
    }]
  },
  options: {
    legend: {
      display: false
    },
    scales: {
      xAxes: [{
        scaleLabel: {
          display: true,
          labelString: 'Blowing Time (min)'
        }
      }],
      yAxes: [{
        ticks: {
          beginAtZero: true
        },
        scaleLabel: {
          display: true,
          labelString: 'Undissolved Lime (tonnes)'
        }
      }]
    }
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.2.1/Chart.min.js"></script>
<canvas id="graph-1-met"></canvas>
 类似资料:
  • 本文向大家介绍jQuery插件echarts去掉垂直网格线用法示例,包括了jQuery插件echarts去掉垂直网格线用法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery插件echarts去掉垂直网格线用法。分享给大家供大家参考,具体如下: 1、问题背景 设计一条统计人数的折线,其中网格线没有垂直线 2、实现源码 (1)有垂直网格线 (2)无垂直网格线 3、实现结果 (1)

  • js社区, 我想用Chart.js做一些定制,但我遇到了一些基本问题... 我所达到的,你可以在这张照片中看到 我的问题是我如何在图表中有固定点?有什么方法可以做到这一点吗?我尝试的是{showXLabels: 10}在chartj折线图上建议的极限标签数 到目前为止,我找不到任何逻辑解决方案来做这件事,我也尝试直接修改库,但到目前为止没有运气。 我的目标是实现这个 我想知道是否有人能给我一些聪明

  • 问题内容: 我想删除图像中显示的行。我该如何删除? 问题答案: jqGrid在主网格表上构建了一些其他div。外部div具有class 。因此,如果需要删除整个网格上存在的左右边界,则可以使用以下CSS: 如果需要删除所有网格边框,可以使用 如果您还需要删除网格中单元格之间的垂直边框,则可以使用 要删除行之间的水平边框,可以使用 要删除列标题之间的垂直边框,可以使用 或替代(不使用)

  • 问题内容: 我正在尝试创建一个div之间的垂直间距为像素完美的布局。到目前为止,我已经排除了几乎所有大型网格系统(960.gs,蓝图),因为它们对于垂直间距根本没有解决方案。使用它们,设置div之间的垂直间距的唯一方法是使用body {line-height}属性并使用该属性操纵div间距。我不会称其为解决方案,因为它破坏了模板,取决于字体系列,并且不允许您对不同的div使用不同的间距。 我发现唯

  • 所以我在我的Mac上安装了VS代码,它运行得非常好。屏幕上只有一条白色的垂直线,有点烦人。 我不确定它应该是某种指南、标尺还是什么。它从一开始就出现了。有办法禁用它吗? 看起来是这样的:

  • 我有以下代码,成功地将单元格的内容集中在我的Vaadin网格中。 它让它看起来像这样。 如何实现垂直居中?当我尝试添加样式名称 v-对齐中间时,它什么也没做。