从chartJs水平条形图中删除填充物

问题描述 投票:0回答:1

嘿:)预先感谢您帮助我解决此问题。

我在ChartJs中有一个水平图表,其中包含一些虚拟信息。我目前想将其与上方的统计数据对齐。在ChartJs中,图表在<canvas>标记内呈现。我想删除图表中的间距。我假设这是填充,但它不在画布上,而是在图表本身内。我已经阅读了文档,并尝试了一些选择。

仅提供一些额外信息,我自定义了图表,现在看起来像这样:

enter image description here

  • 删除图例
  • 翻转标签
  • 更改标签颜色
  • 删除网格线

HTML:<canvas id="myChart" width="400" height="150"></canvas>

    var ctx = document.getElementById('myChart').getContext('2d');
    var myChart = new Chart(ctx, {
        type: 'horizontalBar',
        data: {
            labels: ['1', '2'],
            datasets: [{
                label: 'Money in',
                data: [5, 19],
                backgroundColor: [
                    'rgb(0,51,160)',
                    'rgb(26,121,191)'
                ],
                borderWidth: 0
            }]
        },
        options: {
            scales: {
                yAxes: [{
                    ticks: {
                        fontColor: 'white',
                        display: true,
                        position: top,
                        mirror: true,
                        beginAtZero: true,
                        fontSize: 17,
                        padding: -9,
                        z: 1
                    },
                    gridLines: {
                        display: false
                    }
                }],
                xAxes: [{
                    gridLines: {
                        display: false
                    },
                    ticks: {
                        beginAtZero: true,
                        display: false
                    }
                }]
            },
            legend: {
                display: false
            }
        }
    });
javascript jquery css chart.js
1个回答
0
投票

您可以使用负的左填充定义layout,如下所示:

layout

[请查看下面的代码段,其中图表画布是用边框定义的,以便强调与前面的文本的对齐方式。

options: {
    layout: {
      padding: {
        left: -10
      }
    },
    ...
var myChart = new Chart(document.getElementById('myChart'), {
  type: 'horizontalBar',
  data: {
    labels: ['1', '2'],
    datasets: [{
      label: 'Money in',
      data: [5, 19],
      backgroundColor: ['rgb(0,51,160)', 'rgb(26,121,191)'],
      borderWidth: 0
    }]
  },
  options: {
    layout: {
      padding: {
        left: -10
      }
    },
    scales: {
      yAxes: [{
        ticks: {
          fontColor: 'white',
          mirror: true,
          beginAtZero: true,
          fontSize: 17,
          padding: -9,
          z: 1
        },
        gridLines: {
          display: false
        }
      }],
      xAxes: [{
        gridLines: {
          display: false
        },
        ticks: {          
          beginAtZero: true,
          display: false
        }
      }]
    },
    legend: {
      display: false
    }
  }
});
canvas{ 
  max-width: 300px;
  border: 1px solid #000;
}
© www.soinside.com 2019 - 2024. All rights reserved.