Javascript Chart.js-如何在x轴和y轴之间创建不同的全局配置
我在网站的几个页面上使用Chart.js()来显示不同的图表 为了简化这些图表的添加和修改,我在脚本中添加了几行代码,以便以不同于基本选项的方式配置Chart.jsJavascript Chart.js-如何在x轴和y轴之间创建不同的全局配置,javascript,jquery,chart.js,chart.js2,Javascript,Jquery,Chart.js,Chart.js2,我在网站的几个页面上使用Chart.js()来显示不同的图表 为了简化这些图表的添加和修改,我在脚本中添加了几行代码,以便以不同于基本选项的方式配置Chart.js Chart.defaults.scale.gridLines.display = true Chart.defaults.scale.gridLines.drawBorder = true Chart.defaults.scale.gridLines.color = '#f5f5f5' Chart.defaults.globa
Chart.defaults.scale.gridLines.display = true
Chart.defaults.scale.gridLines.drawBorder = true
Chart.defaults.scale.gridLines.color = '#f5f5f5'
Chart.defaults.global.legend.display = true;
Chart.defaults.global.legend.labels.fontSize = 13
Chart.defaults.global.legend.labels.fontColor = '#373d3f'
....
问题是,在某些选项上,我希望x轴和y轴的值不同,例如drawOnChartArea
选项
我不知道怎么做,因为它不起作用:
Chart.defaults.scale.xAxes.gridLines.drawOnChartArea = false
Chart.defaults.scale.yAxes.gridLines.drawOnChartArea = true
因此,我仍然被迫在所有图形的选项中添加以下行:
options: {
scales: {
xAxes: [{
gridLines: {
drawOnChartArea: false,
}
}],
yAxes: [{
gridLines: {
drawOnChartArea: true,
}
}],
},
}
如何在x轴和y轴之间创建不同的全局配置?
是否有其他方法为Chart.js创建全局配置(更干净?更高效?)
Chart。默认值包含Chart类型
特定部分,其中包括比例
选项。您可以使用console.log(Chart.defaults)
查看它的外观
Chart.defaults.bar
例如定义如下:
"bar": {
"hover": {
"mode": "label"
},
"scales": {
"xAxes": [{
"type": "category",
"offset": true,
"gridLines": {
"offsetGridLines": true
}
}],
"yAxes": [{
"type": "linear"
}]
}
}
如果嵌套特性的父对象已定义,则可以直接指定其值
Chart.defaults.bar.scales.xAxes[0].gridLines.drawOnChartArea = false;
但是,如果尚未定义父对象,则需要将特性与其父对象或对象层次一起指定。执行此操作时,请确保还接管以前存在的默认值
Chart.defaults.bar.legend = { display: false };
请看下面的代码示例
Chart.defaults.bar.legend={
显示:假
};
Chart.defaults.bar.scales.xAxes[0].gridLines.drawOnChartArea=false;
Chart.defaults.bar.scales.yAxes[0]={
类型:'线性',
网格线:{
drawOnChartArea:假
},
滴答声:{
贝吉纳泽罗:是的
}
};
新图表(document.getElementById(“myChart”){
类型:'bar',
数据:{
标签:[“A”、“B”、“C”、“D”],
数据集:[{
数据:[25,18,8,13],
背景颜色:[“红色”、“蓝色”、“绿色”、“橙色”]
}]
}
});代码>
图表。默认值
包含图表类型
特定部分,包括比例
选项。您可以使用console.log(Chart.defaults)
查看它的外观
Chart.defaults.bar
例如定义如下:
"bar": {
"hover": {
"mode": "label"
},
"scales": {
"xAxes": [{
"type": "category",
"offset": true,
"gridLines": {
"offsetGridLines": true
}
}],
"yAxes": [{
"type": "linear"
}]
}
}
如果嵌套特性的父对象已定义,则可以直接指定其值
Chart.defaults.bar.scales.xAxes[0].gridLines.drawOnChartArea = false;
但是,如果尚未定义父对象,则需要将特性与其父对象或对象层次一起指定。执行此操作时,请确保还接管以前存在的默认值
Chart.defaults.bar.legend = { display: false };
请看下面的代码示例
Chart.defaults.bar.legend={
显示:假
};
Chart.defaults.bar.scales.xAxes[0].gridLines.drawOnChartArea=false;
Chart.defaults.bar.scales.yAxes[0]={
类型:'线性',
网格线:{
drawOnChartArea:假
},
滴答声:{
贝吉纳泽罗:是的
}
};
新图表(document.getElementById(“myChart”){
类型:'bar',
数据:{
标签:[“A”、“B”、“C”、“D”],
数据集:[{
数据:[25,18,8,13],
背景颜色:[“红色”、“蓝色”、“绿色”、“橙色”]
}]
}
});代码>
谢谢!但我不了解父属性的所有内容,例如如何使用线型图表的drawOnChartArea=false
。@Rocsta:如果是xAxes
,这将是chart.defaults.line.scales.xAxes[0]。gridLines.drawOnChartArea=false
当我使用您的解决方案时,我遇到了以下错误:jquery-3.4.1.min.js:2未捕获类型错误:无法设置未定义的属性“drawOnChartArea”
@Rocstar:我错了。由于gridLines
尚未定义,它应该是Chart.defaults.line.scales.xAxes[0]={type:“category”,id:“x-axis-0”,gridLines:{drawOnChartArea:false}
谢谢你,我更好地理解了这个概念谢谢!但我不了解父属性的所有内容,例如如何使用线型图表的drawOnChartArea=false
。@Rocsta:如果是xAxes
,这将是chart.defaults.line.scales.xAxes[0]。gridLines.drawOnChartArea=false
当我使用您的解决方案时,我遇到了以下错误:jquery-3.4.1.min.js:2未捕获类型错误:无法设置未定义的属性“drawOnChartArea”
@Rocstar:我错了。由于gridLines
尚未定义,因此它应该是Chart.defaults.line.scales.xAxes[0]={type:“category”,id:“x-axis-0”,gridLines:{drawOnChartArea:false}
谢谢,它可以工作,我对这个概念理解得更好