首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue chartJS/legacy change Legend Legend

Vue chartJS/legacy change Legend Legend
EN

Stack Overflow用户
提问于 2022-07-05 10:53:32
回答 2查看 609关注 0票数 1

我正在与Vue-图表JS与Laravel后端的小项目工作。我使用的是从vue-chartjs/导入的vue2图表。所以,我想把“传奇”标签移到图表的底部。

我试图将legend: {position: "bottom",},添加到图表选项中,但它没有工作。还有别的办法吗?

代码语言:javascript
复制
<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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-07-28 11:01:12

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

代码语言:javascript
复制
chartOptions: {
  responsive: true,
  maintainAspectRatio: false,
  plugins: {
    legend: {
      position: "bottom",
    }
  }
},
票数 2
EN

Stack Overflow用户

发布于 2022-11-03 14:43:57

如果有些人在一些图表上使用vue-chartjs并在一些图表上使用类型记录环境,我的两分钱,将图例作为chartOptions.plugins内部的一个支柱会抛出一个linter类型错误:

'plugins.legend.position‘的类型在这些types.ts(2322)之间不兼容

因此,您只需按以下方式强制执行:(这不是正确的方法,但我没有找到任何解决办法)

代码语言:javascript
复制
chartOptions: {
  responsive: true,
  maintainAspectRatio: false,
  plugins: {
    legend: {
      position: "bottom" as const,
    }
  }
},
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72868211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档