增加折线图和图例 ChartJS 之间的差距
Increase gap between line-chart and legend ChartJS
我已经研究了几个小时试图找出这个问题。我使用 ChartJS 并尝试构建折线图。看来我的图表和图例之间没有差距,需要在它们之间添加更多 space。
应该是这样的:
但我明白了(请参阅我的代码片段)
这是我的代码:
new Chart(document.getElementById("line-chart"), {
type: "line",
data: {
labels: ["Label1", "Label2", "Label3", "Label4"],
datasets: [
{
label: "A",
fill: false,
data: [10, 30, 60, 100],
borderWidth: 1,
backgroundColor: "red",
borderColor: "red",
},
{
label: "B",
fill: false,
data: [28, 80, 60, 60],
borderWidth: 1,
backgroundColor: "green",
borderColor: "green",
},
],
},
options: {
legend: {
align: "start",
position: "right",
labels: {
usePointStyle: true,
fontSize: 10,
},
},
elements: {
line: {
tension: 0,
},
},
responsive: true,
maintainAspectRatio: false,
},
});
canvas {
height: 35vh !important;
width: 90%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js"></script>
<head></head>
<body>
<canvas id="line-chart"></canvas>
</body>
根据放置图例的位置,可以使用一些快速修复选项。参见
对于您的情况,通常情况下,我建议生成您自己的 html 图例,这样您就可以完全控制。
您可以在选项中进行设置:
options: {
legend: {
display:false, //turn default legend off
},
legendCallback : legendBuilder, //link to your custom function returning html string
}
定义图例在 html 中的位置:
<div id="chart-container">
<canvas id="line-chart"></canvas>
<div id="chart-legend"></div>
</div>
然后生成你的图例:
var myLegend = document.getElementById("chart-legend");
myLegend.innerHTML = myChart.generateLegend();
我已经研究了几个小时试图找出这个问题。我使用 ChartJS 并尝试构建折线图。看来我的图表和图例之间没有差距,需要在它们之间添加更多 space。
应该是这样的:
但我明白了(请参阅我的代码片段)
这是我的代码:
new Chart(document.getElementById("line-chart"), {
type: "line",
data: {
labels: ["Label1", "Label2", "Label3", "Label4"],
datasets: [
{
label: "A",
fill: false,
data: [10, 30, 60, 100],
borderWidth: 1,
backgroundColor: "red",
borderColor: "red",
},
{
label: "B",
fill: false,
data: [28, 80, 60, 60],
borderWidth: 1,
backgroundColor: "green",
borderColor: "green",
},
],
},
options: {
legend: {
align: "start",
position: "right",
labels: {
usePointStyle: true,
fontSize: 10,
},
},
elements: {
line: {
tension: 0,
},
},
responsive: true,
maintainAspectRatio: false,
},
});
canvas {
height: 35vh !important;
width: 90%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js"></script>
<head></head>
<body>
<canvas id="line-chart"></canvas>
</body>
根据放置图例的位置,可以使用一些快速修复选项。参见
对于您的情况,通常情况下,我建议生成您自己的 html 图例,这样您就可以完全控制。
您可以在选项中进行设置:
options: {
legend: {
display:false, //turn default legend off
},
legendCallback : legendBuilder, //link to your custom function returning html string
}
定义图例在 html 中的位置:
<div id="chart-container">
<canvas id="line-chart"></canvas>
<div id="chart-legend"></div>
</div>
然后生成你的图例:
var myLegend = document.getElementById("chart-legend");
myLegend.innerHTML = myChart.generateLegend();