Как установить название оси ChartJS Y?
Я использую Chartjs для отображения диаграмм, и мне нужно установить заголовок оси y, но в документации нет информации об этом.
Мне нужно, чтобы ось Y была установлена как на картинке или сверху оси Y, чтобы кто-то мог теперь узнать, что это за параметр
![]()
Я посмотрел на официальном сайте, но не было никакой информации об этом
Ответы
Ответ 1
Для Chart.js 2.x обратитесь к ответу andyhasit - fooobar.com/questions/140331/...
Для Chart.js 1.x вы можете настроить параметры и расширить тип диаграммы, чтобы сделать это, например, так
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.
Скрипка - http://jsfiddle.net/wyox23ga/
![enter image description here]()
Ответ 2
В Chart.js версии 2.0 это возможно:
options = {
scales: {
yAxes: [{
scaleLabel: {
display: true,
labelString: 'probability'
}
}]
}
}
См. Документацию по маркировке осей для более подробной информации.
Ответ 3
Для осей x и y:
options : {
scales: {
yAxes: [{
scaleLabel: {
display: true,
labelString: 'probability'
}
}],
xAxes: [{
scaleLabel: {
display: true,
labelString: 'hola'
}
}],
}
}
Ответ 4
chart.js поддерживает это defaul, проверяя ссылку.
chartjs
вы можете установить метку в атрибуте options.
Объект options выглядит следующим образом.
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"
}
}
]
}
};
Ответ 5
Для меня это работает следующим образом:
options : {
scales: {
yAxes: [{
scaleLabel: {
display: true,
labelString: 'probability'
}
}]
}
}
Ответ 6
Рассмотрим использование преобразования: rotate (-90deg) style для элемента.
См. http://www.w3schools.com/cssref/css3_pr_transform.asp
Пример,
В вашем css
.verticaltext_content {
position: relative;
transform: rotate(-90deg);
right:90px; //These three positions need adjusting
bottom:150px; //based on your actual chart size
width:200px;
}
Добавить коэффициент выноса пространства в шкалу Y Axis, чтобы текст имел место для рендеринга в вашем javascript.
scaleLabel: " <%=value%>"
Затем в вашем html после того, как ваш холст диаграммы поместил что-то вроде...
<div class="text-center verticaltext_content">Y Axis Label</div>
Это не самое элегантное решение, но хорошо работало, когда у меня было несколько уровней между html и кодом диаграммы (с использованием angular -chart и не желая изменять какой-либо исходный код).