ChartJS 两个图表的x刻度未对齐-具有相同配置的图表类型-唯一的区别是“图表类型”(条形图/折线图)

ljsrvy3e  于 2022-11-07  发布在  Chart.js
关注(0)|答案(1)|浏览(185)

我在Chartjs中构建了一个配置完全相同的折线图和条形图,但由于某种原因,两个图表的x刻度不同,如下图所示。

两个图表的配置相同,唯一的区别是图表类型:

  1. function getOptions() {
  2. return {
  3. animation: false,
  4. responsive: true,
  5. maintainAspectRatio: false,
  6. plugins: {
  7. tooltip: false,
  8. legend: {
  9. display: false
  10. },
  11. title: {
  12. display: false
  13. }
  14. },
  15. elements: {
  16. line: {
  17. fill: true
  18. },
  19. point: {
  20. radius: 0
  21. }
  22. },
  23. scales: {
  24. x: {
  25. type: "time",
  26. time: {
  27. displayFormats: {
  28. second: 'HH:mm:ss',
  29. minute: 'HH:mm',
  30. hour: 'HH'
  31. },
  32. unit: 'minute',
  33. stepSize: 1,
  34. min: '00:00:00',
  35. max: '23:59:59',
  36. },
  37. grid: {
  38. display: true,
  39. drawBorder: true,
  40. drawOnChartArea: true,
  41. drawTicks: true,
  42. color: function(context) {
  43. return '#fff';
  44. },
  45. }
  46. },
  47. y: {
  48. beginAtZero: true,
  49. grid: {
  50. display: true,
  51. drawBorder: false,
  52. color: function(context) {
  53. return '#fff';
  54. },
  55. },
  56. }
  57. }
  58. };
  59. }

我注意到,如果我将“stepSize”设置为“seconds”,x轴会完全对齐。这可能是因为插入图表的数据是second-data。

i2byvkas

i2byvkas1#

这是因为条形图将x轴刻度上的offset属性设置为true。
https://www.chartjs.org/docs/3.8.0/axes/cartesian/category.html#common-options-to-all-cartesian-axes
因此,要对齐它们,您必须将条形图的值设置为false,或将折线图的值设置为true

相关问题