Подтвердить что ты не робот

Как установить название оси ChartJS Y?

Я использую Chartjs для отображения диаграмм, и мне нужно установить заголовок оси y, но в документации нет информации об этом.

Мне нужно, чтобы ось Y была установлена как на картинке или сверху оси Y, чтобы кто-то мог теперь узнать, что это за параметр

Я посмотрел на официальном сайте, но не было никакой информации об этом

4b9b3361

Ответ 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 и не желая изменять какой-либо исходный код).