ChartJS(雷达)- 为“0”值设置基本刻度位置
ChartJS (Radar) - Set base tick position for "0" value
使用 chart.js (v3.7.0)
使用包含 0
值的多个数据集设置 Radar 图表(出于工具提示和数据目的,需要保持为 0
)。
试图找到一种方法来 set/include 为图表上的 0
值绘制刻度标记,这些值不会全部在图表中心发生冲突(0
是一个可行的方法该项目的数据本身价值)。
beginAtZero
选项对初始报价显示位置没有任何影响。
这是 beginAtZero
选项应该发生的情况,并且出现了某种倒退?如果没有,这甚至可以用 chart.js?
选项:
options = {
scales: {
r: {
min: 0,
max: 99,
beginAtZero: true,
angleLines: {
display: false
},
ticks: {
display: false,
stepSize: 33.333
}
}
}
}
示例数据:
data = {
labels: [ 'Field 1', 'Field 2', 'Field 3', 'Field 4', 'Field 5', 'Field 6' ],
datasets: [
{
label: 'Dataset 1',
data: [ 10, 99, 0, 76, 0, 0 ],
backgroundColor: 'rgba(255, 213, 117, 0.6)',
borderColor: 'rgb(255, 213, 117)',
fill: true
},
{
label: 'Dataset 2',
data: [ 99, 35, 0, 0, 54, 0 ],
backgroundColor: 'rgba(54, 162, 235, 0.6)',
borderColor: 'rgb(54, 162, 235)',
fill: true
}
],
}
尝试过:
[负最小值] - 当尝试对 min
使用负值时,它会在路径填充上留下某种掩蔽。与其他一些视觉 属性 设置结合使用,但似乎没有任何解决办法。 (已解决 - 见下文)
提前致谢!
[个人解决方案]
结合 @LeeLenalee's ,我能够通过路径的“屏蔽”识别我自己的个人问题。使用负 min
值确实正确地偏移了路径的起始值。此外,如果数据集具有 fill: true
,它显然还会屏蔽在数据边界之外绘制的任何路径填充(在这种情况下,负 min
值)。从每个数据集中删除此 属性 后,路径会正确填充。
data = {
labels: [ 'Field 1', 'Field 2', 'Field 3', 'Field 4', 'Field 5', 'Field 6' ],
datasets: [
{
label: 'Dataset 1',
data: [ 10, 99, 0, 76, 0, 0 ],
backgroundColor: 'rgba(255, 213, 117, 0.6)',
borderColor: 'rgb(255, 213, 117)',
// -- fill: true
}
],
}
最简单的方法是将最小值设置为步长的负数,如下所示:
const options = {
type: 'radar',
data: {
labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],
datasets: [{
label: 'Dataset 1',
data: [10, 99, 0, 76, 0, 0],
borderColor: 'pink'
},
{
label: 'Dataset 2',
data: [99, 35, 0, 0, 54, 0],
borderColor: 'orange'
}
],
},
options: {
scales: {
r: {
min: -33.333,
max: 99,
beginAtZero: true,
angleLines: {
display: false
},
ticks: {
display: false,
stepSize: 33.333
}
}
}
}
}
const ctx = document.getElementById('chartJSContainer').getContext('2d');
new Chart(ctx, options);
<body>
<canvas id="chartJSContainer" width="600" height="400"></canvas>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.7.0/chart.js"></script>
</body>
使用 chart.js (v3.7.0)
使用包含 0
值的多个数据集设置 Radar 图表(出于工具提示和数据目的,需要保持为 0
)。
试图找到一种方法来 set/include 为图表上的 0
值绘制刻度标记,这些值不会全部在图表中心发生冲突(0
是一个可行的方法该项目的数据本身价值)。
beginAtZero
选项对初始报价显示位置没有任何影响。
这是 beginAtZero
选项应该发生的情况,并且出现了某种倒退?如果没有,这甚至可以用 chart.js?
选项:
options = {
scales: {
r: {
min: 0,
max: 99,
beginAtZero: true,
angleLines: {
display: false
},
ticks: {
display: false,
stepSize: 33.333
}
}
}
}
示例数据:
data = {
labels: [ 'Field 1', 'Field 2', 'Field 3', 'Field 4', 'Field 5', 'Field 6' ],
datasets: [
{
label: 'Dataset 1',
data: [ 10, 99, 0, 76, 0, 0 ],
backgroundColor: 'rgba(255, 213, 117, 0.6)',
borderColor: 'rgb(255, 213, 117)',
fill: true
},
{
label: 'Dataset 2',
data: [ 99, 35, 0, 0, 54, 0 ],
backgroundColor: 'rgba(54, 162, 235, 0.6)',
borderColor: 'rgb(54, 162, 235)',
fill: true
}
],
}
尝试过:
[负最小值] - 当尝试对 min
使用负值时,它会在路径填充上留下某种掩蔽。与其他一些视觉 属性 设置结合使用,但似乎没有任何解决办法。 (已解决 - 见下文)
提前致谢!
[个人解决方案]
结合 @LeeLenalee's min
值确实正确地偏移了路径的起始值。此外,如果数据集具有 fill: true
,它显然还会屏蔽在数据边界之外绘制的任何路径填充(在这种情况下,负 min
值)。从每个数据集中删除此 属性 后,路径会正确填充。
data = {
labels: [ 'Field 1', 'Field 2', 'Field 3', 'Field 4', 'Field 5', 'Field 6' ],
datasets: [
{
label: 'Dataset 1',
data: [ 10, 99, 0, 76, 0, 0 ],
backgroundColor: 'rgba(255, 213, 117, 0.6)',
borderColor: 'rgb(255, 213, 117)',
// -- fill: true
}
],
}
最简单的方法是将最小值设置为步长的负数,如下所示:
const options = {
type: 'radar',
data: {
labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],
datasets: [{
label: 'Dataset 1',
data: [10, 99, 0, 76, 0, 0],
borderColor: 'pink'
},
{
label: 'Dataset 2',
data: [99, 35, 0, 0, 54, 0],
borderColor: 'orange'
}
],
},
options: {
scales: {
r: {
min: -33.333,
max: 99,
beginAtZero: true,
angleLines: {
display: false
},
ticks: {
display: false,
stepSize: 33.333
}
}
}
}
}
const ctx = document.getElementById('chartJSContainer').getContext('2d');
new Chart(ctx, options);
<body>
<canvas id="chartJSContainer" width="600" height="400"></canvas>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.7.0/chart.js"></script>
</body>