【问题标题】:Datalabels not showing on Chart.js数据标签未显示在 Chart.js 上
【发布时间】:2021-10-05 22:43:37
【问题描述】:

我试图在我的 chart.js 顶部显示总金额;我正在尝试使用 datalabel 插件,但我不确定它为什么不显示标签,我没有收到任何错误,这是我的代码:

<script src="https://cdn.jsdelivr.net/npm/chart.js@3.0.0/dist/chart.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels@2.0.0-rc"></script>
<canvas id="myChart" width="850" height="520"></canvas>
<script>
var ctx = document.getElementById('myChart');
Chart.register(ChartDataLabels);
Chart.defaults.set('plugins.datalabels', {
  color: '#FE777B'
});
var myChart = new Chart(ctx, {
    type: 'bar',
    plugins: [ChartDataLabels],
    data: {
        datasets: [{
            data: <?php print_r($barData); ?>,
            label: 'Advisor Closed MTD',
            backgroundColor: 'rgb(192,111,94)',
            barThickness: 25,
            datalabels: {
                color: '#FFCE56'
            }
            
        }],
    },
    options: {
        responsive: false,
        plugins: {
            datalabels: {
                color: 'blue'
            }
        }
    }
});
</script>

图表显示了正确的信息,但标签根本没有显示。

【问题讨论】:

    标签: chart.js chart.js3


    【解决方案1】:

    标签正在显示,它们在条形本身中,要在条形顶部显示它们,您需要像这样配置它:

    options: {
          responsive: false,
          plugins: {
            datalabels: {
              anchor: 'end',
              align: 'end',
              labels: {
                value: {
                  color: 'blue'
                }
              }
    
            }
          }
        }
    

    例子:

    <script src="https://cdn.jsdelivr.net/npm/chart.js@3.0.0/dist/chart.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels@2.0.0-rc"></script>
    <canvas id="myChart" width="850" height="520"></canvas>
    <script>
      var ctx = document.getElementById('myChart');
      Chart.register(ChartDataLabels);
      Chart.defaults.set('plugins.datalabels', {
        color: '#FE777B'
      });
      var myChart = new Chart(ctx, {
        type: 'bar',
        plugins: [ChartDataLabels],
        data: {
          labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],
          datasets: [{
            data: [12, 19, 3, 5, 2, 3],
            label: 'Advisor Closed MTD',
            backgroundColor: 'rgb(192,111,94)',
            barThickness: 25,
            datalabels: {
              color: '#FFCE56'
            }
    
          }],
        },
        options: {
          responsive: false,
          plugins: {
            datalabels: {
              anchor: 'end',
              align: 'end',
              labels: {
                value: {
                  color: 'blue'
                }
              }
    
            }
          }
        }
      });
    
    </script>

    【讨论】:

    • 有道理!所以我认为我的实际问题是我如何发送数据,我看到你添加了标签,我只是向数据发送一个 json,这是我使用的一个例子:{ Greg: 67800, Jed: 9800, Jeremy: 96200,}
    • 这不是一个有效的输入,除非您在选项中进行更多配置,请参阅:chartjs.org/docs/master/general/data-structures.html
    猜你喜欢
    • 2017-06-29
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多