如何使用tick和d3.format将字符串追加到y轴数据?

时间:2019-04-17 20:09:12

标签: javascript d3.js c3.js

我正在使用C3.js制作一个非常简单的堆积条形图。 https://c3js.org/samples/chart_bar_stacked.html。我希望能够将文本附加到值,特别是+“ Mb”,以便最终用户知道这些数字表示兆位,而不是其他任何值。我添加了一个有用的y轴标签,但是对于我的问题,我想知道如何利用d3.js来执行值的格式设置。

我使用了d3.format,它表明我可以追加字符串,但是还没有弄清楚如何将其提取。

using UIKit;

UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Phone // or Pad

这无法正常工作,我收到“ TypeError:this.tickFormat不是函数”。想知道是否有c3专家可以帮助我解决这个问题?谢谢!

1 个答案:

答案 0 :(得分:2)

您可以编写一个报价函数,如下所示:

tick: 
      {
        format: function (d) {
            if ((d) > 0) {
                d = d + "Mb";
                }
            return d;
        }
      },

我对d使用了> 0,因此,如果d不为0,“ Mb”只会附加到d,但是您也可以扩展代码以自动转换输入:

 tick: 
       {
         format: function (d) {
             if (((d / 1000) >= 1) & ((d / 1000) < 1000)) {
                  d = Math.round((d / 1000 )*100) / 100 + "Kb";
                  }
             else if ((d / 1000000) >= 1) {
                  d = Math.round((d / 1000000 )*100) / 100 + "Mb";
                  }
             return d;
          }
        },

这样做,您可以将未转换的数据用作输入,并将其转换为“ Kb”或“ Mb”单位。小数点后100组2位数字。