我正在使用Chartjs显示图表,需要设置y轴标题,但文档中没有相关信息。
我需要将y轴设置成如图所示的样子,或者在y轴的顶部添加标题,以便人们知道该参数是什么。
我已经查看了官方网站,但没有相关信息。
我正在使用Chartjs显示图表,需要设置y轴标题,但文档中没有相关信息。
我需要将y轴设置成如图所示的样子,或者在y轴的顶部添加标题,以便人们知道该参数是什么。
我已经查看了官方网站,但没有相关信息。
options = {
scales: {
yAxes: [{
scaleLabel: {
display: true,
labelString: 'probability'
}
}]
}
}
Chart-2.1.4.min.js
库。) - Bobulous[
和]
之间的部分。可能你已经有了多个y轴,所以只需在每个轴上添加scaleLabel
即可。 - Mark对于Chart.js 1.x,您可以调整选项并扩展图表类型以实现此目的,操作如下:
有关Chart.js 2.x,请参考andyhasit的答案 - https://dev59.com/rFwZ5IYBdhLWcg3wDMi9#36954319
Chart.types.Line.extend({
name: "LineAlt",
draw: function () {
Chart.types.Line.prototype.draw.apply(this, arguments);
var ctx = this.chart.ctx;
ctx.save();
// text alignment and color
ctx.textAlign = "center";
ctx.textBaseline = "bottom";
ctx.fillStyle = this.options.scaleFontColor;
// position
var x = this.scale.xScalePaddingLeft * 0.4;
var y = this.chart.height / 2;
// change origin
ctx.translate(x, y);
// rotate text
ctx.rotate(-90 * Math.PI / 180);
ctx.fillText(this.datasets[0].label, 0, 0);
ctx.restore();
}
});
像这样调用它
var ctx = document.getElementById("myChart").getContext("2d");
var myLineChart = new Chart(ctx).LineAlt(data, {
// make enough space on the right side of the graph
scaleLabel: " <%=value%>"
});
注意标签值前面的空格,这为我们提供了写y轴标签的空间,而不会影响到Chart.js的内部太多。
Fiddle - http://jsfiddle.net/wyox23ga/
对于x和y轴:
options : {
scales: {
yAxes: [{
scaleLabel: {
display: true,
labelString: 'probability'
}
}],
xAxes: [{
scaleLabel: {
display: true,
labelString: 'hola'
}
}],
}
}
对于 Chart.js 3.x
options: {
scales: {
y: {
title: {
display: true,
text: 'Y axis title'
}
}
}
}
chart.js默认支持此功能,请查看链接 chartjs。
您可以在选项属性中设置标签。
选项对象类似于这样。
options = {
scales: {
yAxes: [
{
id: 'y-axis-1',
display: true,
position: 'left',
ticks: {
callback: function(value, index, values) {
return value + "%";
}
},
scaleLabel:{
display: true,
labelString: 'Average Personal Income',
fontColor: "#546372"
}
}
]
}
};
options : {
scales: {
yAxes: [{
scaleLabel: {
display: true,
labelString: 'probability'
}
}]
}
}
.verticaltext_content {
position: relative;
transform: rotate(-90deg);
right:90px; //These three positions need adjusting
bottom:150px; //based on your actual chart size
width:200px;
}
scaleLabel: " <%=value%>"
<div class="text-center verticaltext_content">Y Axis Label</div>
虽然不是最优雅的解决方案,但在HTML和图表代码之间有几个层次(使用angular-chart并且不想更改任何源代码)时效果很好。