Пользовательский дисплей YAxis и stepSize для ChartJs - PullRequest
0 голосов
/ 04 октября 2019

Я создал диаграмму js, и ее YAxis генерируется динамически на основе ответа API, пока что это имеет место в Yaxis

          1.49 GB
          1.3 GB
          1.12 GB
          953.67 MB
          762.94 MB
          572.2 MB
          381.47 MB
          190.73 MB
          0 Bytes

То, что я хочу достичь на основе выше, выглядит так:

          2 GB
          1 GB
          900 MB
          800 MB
          700 MB
          600 MB
          500 MB
          400 MB
          300 MB
          200 MB
          100 MB
           0 BYTES

Я создал функцию для преобразования данных в ГБ или МБ, где исходные данные выглядят так:

          223990547.68666667,25568546.453333333, 44518612.25067709

          yAxes: [
                    {
                        ticks: {
                                callback:(v) => {
                                       return this.formatBytes(v)
                                },
                     .....

          function formatBytes(bytes) {
                 if (bytes === 0) return '0 Bytes';
                 const k = 1024;
                 const dm = decimals < 0 ? 0 : decimals;
                 const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 
                 'EB', 'ZB', 'YB'];

                 if(bytes >= 0) {
                    const i = Math.floor(Math.log(bytes) / Math.log(k));
                    if(i <= 0 || i === -1) {
                       return '0 Byte'
                    }
                    let positiveBytes = parseFloat((bytes / Math.pow(k, i)).toFixed(dm));
                    return parseFloat((bytes / Math.pow(k,i)).toFixed(dm)) + ' ' + sizes[i];
               }
            } 

Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...