chartjs 饼图图例的每个标签都在一个新行上

Posted

技术标签:

【中文标题】chartjs 饼图图例的每个标签都在一个新行上【英文标题】:Each label of the chartjs pie chart's legend on a new line 【发布时间】:2017-11-06 03:59:04 【问题描述】:

我有一个使用 chart.js 2.0饼图。 (jsfiddle)

var ctx = document.getElementById("myChart").getContext('2d');
var myChart = new Chart(ctx, 
  type: 'pie',
  data: 
    labels: ["Green", "Blue", "Gray", "Purple", "Yellow", "Red", "Black"],
    datasets: [
      backgroundColor: [
        "#2ecc71",
        "#3498db",
        "#95a5a6",
        "#9b59b6",
        "#f1c40f",
        "#e74c3c",
        "#34495e"
      ],
      data: [12, 19, 3, 17, 28, 24, 7],
    ]
  ,
  options:  
    legend: 
      display: true,
      position: 'top'
    
  
);

我想确定将图例标签放在左上角位置的最佳方式,每个标签都将在新行上:

最简单的方法是什么?是否可以开箱即用地做到这一点?

阅读文档后,我发现generatelabels 函数可以生成一个图例,我们可以使用该图例并将其分配给 DOM 元素并进行样式化等...但在我看来,这是一种困难的方式,我相信比较容易。

【问题讨论】:

你有没有找到一个干净的解决方案来解决这个问题? 我需要实现同样的事情,在生成函数中将 \n 附加到文本不起作用。你是怎么解决的? 【参考方案1】:

在官方提供更好的支持之前,这是一个 hack,但令人满意且便宜。只需附加一长串空格,例如。 " " 到每个标签字符串的末尾。

这应该成功地强制标签被格式化为每行一个。理想情况下,这应该与align: 'start' (v2.9+) 一起使用

【讨论】:

以上是关于chartjs 饼图图例的每个标签都在一个新行上的主要内容,如果未能解决你的问题,请参考以下文章

我的饼图(chartJs)没有出现

如何使用 Chartjs 对图例条目进行分组?

谷歌图表中的传奇新行(PieChart)

有没有办法隐藏/自定义 ChartJS 上面的图例?

如何在饼图上显示文字

如何在chart.js中的饼图上方显示标签