javascript - Vue ChartJS/legacy-更改图例位置

标签 javascript vue.js vue-component vue-chartjs

我正在使用带有 Laravel 后端的 Vue-Chart JS 开发一个小项目。我使用了 vue2 图表,它是从 vue-chartjs/legacy 导入的。所以,我想将图例标签移动到图表的底部。

我尝试将 legend: {position: "bottom",}, 添加到图表选项中,但没有成功。还有其他办法吗?

<template>
  <Bar
    :chart-options="chartOptions"
    :chart-data="chartData"
    :chart-id="chartId"
    :dataset-id-key="datasetIdKey"
    :plugins="plugins"
    :css-classes="cssClasses"
    :styles="styles"
    :width="width"
    :height="height"
  />
</template>

<script>
import { Bar } from "vue-chartjs/legacy";

import {
  Chart as ChartJS,
  Title,
  Tooltip,
  Legend,
  BarElement,
  CategoryScale,
  LinearScale,
} from "chart.js";

ChartJS.register(
  Title,
  Tooltip,
  Legend,
  BarElement,
  CategoryScale,
  LinearScale
);

export default {
  name: "BarChart",
  components: {
    Bar,
  },
  props: {
    chartId: {
      type: String,
      default: "bar-chart",
    },
    datasetIdKey: {
      type: String,
      default: "label",
    },
    width: {
      type: Number,
      default: 400,
    },
    height: {
      type: Number,
      default: 400,
    },
    cssClasses: {
      default: "",
      type: String,
    },
    styles: {
      type: Object,
      default: () => {},
    },
    plugins: {
      type: Array,
      default: () => [],
    },
  },
  data() {
    return {
      chartData: {
        labels: [
          "January",
          "February",
          "March",
          "April",
          "May",
          "June",
          "July",
          "August",
          "September",
          "October",
          "November",
          "December",
        ],
        datasets: [
          {
            label: "Data One",
            backgroundColor: "#f87979",
            data: [40, 20, 12, 39, 10, 40, 39, 80, 40, 20, 12, 11],
          },
        ],
      },
      chartOptions: {
        responsive: true,
        maintainAspectRatio: false,
        legend: {
          position: "bottom",
        },
      },
    };
  },
};
</script>

最佳答案

您需要添加一个插件对象并在其中移动图例

chartOptions: {
  responsive: true,
  maintainAspectRatio: false,
  plugins: {
    legend: {
      position: "bottom",
    }
  }
},

关于javascript - Vue ChartJS/legacy-更改图例位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72868211/

相关文章:

javascript - 我如何开始学习 Ext Js ?我首先可以做什么?

javascript - 提交按钮有时会以 html 形式执行两次操作

javascript - 如何根据两个分隔符拆分字符串?

javascript - IE11 - 在控制台中抛出错误,而它在 Chrome 中工作正常

javascript - 正则表达式,选择其他文本中的一部分

javascript - 访问导航守卫中的 Vuex 更改器(mutator)

JavaScript (VueJS) 重新加载列表

javascript - Vuejs更新父数据时更新子组件

vue.js - 了解 VueJS 中的组件嵌套

firebase - Vue.js:带有来自身份验证的 firebase 日期的 vue-moment 的控制台警告 - 更新日期