我正在与Vue-图表JS与Laravel后端的小项目工作。我使用的是从vue-chartjs/导入的vue2图表。所以,我想把“传奇”标签移到图表的底部。
我试图将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>发布于 2022-07-28 11:01:12
您需要添加一个插件对象并在其中移动图例。
chartOptions: {
responsive: true,
maintainAspectRatio: false,
plugins: {
legend: {
position: "bottom",
}
}
},发布于 2022-11-03 14:43:57
如果有些人在一些图表上使用vue-chartjs并在一些图表上使用类型记录环境,我的两分钱,将图例作为chartOptions.plugins内部的一个支柱会抛出一个linter类型错误:
'plugins.legend.position‘的类型在这些types.ts(2322)之间不兼容
因此,您只需按以下方式强制执行:(这不是正确的方法,但我没有找到任何解决办法)
chartOptions: {
responsive: true,
maintainAspectRatio: false,
plugins: {
legend: {
position: "bottom" as const,
}
}
},https://stackoverflow.com/questions/72868211
复制相似问题