chartJS -折线图-数据标签格式化函数不工作

hc8w905p  于 2022-11-06  发布在  Chart.js
关注(0)|答案(1)|浏览(169)

我有下面的HTML/JS代码,如下所示,它需要两个列表:

  • 标示
  • 价值观

并将其转换为折线图,并在点上添加标签:

  1. <div style = "position:relative; bottom:140px; z-index: -2;">
  2. <canvas id="lineChart" width = 600 height = 200></canvas>
  3. <script>
  4. Chart.register(ChartDataLabels);
  5. var ctx = document.getElementById("lineChart").getContext("2d");
  6. var linechart = new Chart(ctx, {
  7. type: "line",
  8. data: {
  9. labels: {{ labels | safe}},
  10. datasets: [
  11. {
  12. label: "Data points",
  13. data: {{ values | safe}},
  14. fill: false,
  15. borderColor: "rgb(75, 192, 192)",
  16. lineTension: 0.5
  17. }
  18. ]
  19. },
  20. options: {
  21. responsive: true,
  22. layout: {
  23. padding: {
  24. top: 100
  25. }
  26. },
  27. scales: {
  28. x: {
  29. grid: {
  30. display: false
  31. }
  32. },
  33. y: {
  34. display: false,
  35. }
  36. },
  37. plugins: {
  38. legend: {
  39. display: false
  40. },
  41. datalabels: {
  42. anchor: 'end',
  43. align: 'top',
  44. formatter: Math.round,
  45. font: {
  46. weight: 'bold',
  47. size: 15
  48. }
  49. }
  50. }
  51. }
  52. });
  53. </script>

这是工作正常:

但是,我希望标注前面有'£'符号,后面有'm'符号
每次我尝试使用格式化程序函数时,如下所示:

  1. formatter: function(value){
  2. return value + 'm';

或任何其他组合,图表未能返回。我完全困惑为什么。
有什么建议吗?

fzsnzjdm

fzsnzjdm1#

下面的formatter很适合我。

  1. formatter: v => '£' + v + 'm'

请看一下下面修改后的可运行代码。
第一个
如果您的代码仍然不起作用,可能是某处有语法错误。请尝试打开浏览器的DevTools,检查控制台选项卡上是否有任何错误,以帮助您找到问题的根源。

相关问题