Javascript 仅在ChartJS上显示整个单位

Javascript 仅在ChartJS上显示整个单位,javascript,chart.js,Javascript,Chart.js,我今天做了一张图表-来测试它-我在想是否有可能只在图表的一侧显示整个单位?(比如123456789等等……) 我正在使用ChartJS 这是一个屏幕: (单位位于左侧,靠近“值”) 请原谅我英语不好,我是法国人。你可以像这样传递选项来覆盖刻度 ... scaleOverride: true, scaleSteps: 10, scaleStepWidth: 1, scaleStartValue: 0, ... 小提琴- 如果您不知道数据的上限,那么您可以在初始化图表并设置它(无聊:-)之前

我今天做了一张图表-来测试它-我在想是否有可能只在图表的一侧显示整个单位?(比如123456789等等……) 我正在使用ChartJS

这是一个屏幕:

(单位位于左侧,靠近“值”)


请原谅我英语不好,我是法国人。

你可以像这样传递选项来覆盖刻度

...
scaleOverride: true,
scaleSteps: 10,
scaleStepWidth: 1,
scaleStartValue: 0,
...

小提琴-


如果您不知道数据的上限,那么您可以在初始化图表并设置它(无聊:-)之前计算上述值,或者在没有整数时格式化比例标签,不显示比例标签

new Chart(ctx).Line(data, {
  integersOnly: true,
  scaleLabel: function(d) {
    if (parseInt(d.value) === Number(d.value))
      return d.value
    else
      return '';
  }
});
这几乎涵盖了大多数情况,除了当所有值都小于1且没有一个接近1时——在这种情况下,您看不到任何比例标签

现在,您可以简单地在数据数组的末尾添加一个额外的值(即,没有相应的标签,这将迫使比例上升到1),但这将拉起最后一行之后的行(一位)。这就是它的样子

var data = {
    labels: ["January", "February", "March", "April", "May", "June", "July"],
    datasets: [
        {
            label: "My First dataset",
            fillColor: "rgba(220,220,220,0.2)",
            strokeColor: "rgba(220,220,220,1)",
            pointColor: "rgba(220,220,220,1)",
            pointStrokeColor: "#fff",
            pointHighlightFill: "#fff",
            pointHighlightStroke: "rgba(220,220,220,1)",
            data: [0.65, 0.2, 0.80, 0.81, 0.56, 0.55, 0.8, 1]
        }
    ]
};

小提琴-


但是我们可以做得更好,只需将这个虚拟点移动到一个虚拟序列,并用null填充序列的其余部分(Chart.js不会绘制null值,也不会在工具提示中显示)

然后你就成了黄金(因为最后一点在图表上,你甚至看不到它的工具提示)



Fiddle-

我也有这个问题,但当我查看chartjs的代码时,我可以理解发生了什么,因为数据集中的最小值和最大值介于1之间,只有当数据集的某个值大于1时,它才会显示整数部分,请参见代码片段:

var lineChartData1={
“数据集”:[{
“数据”:[
"0.5",
"0.2",
"0.9",
"0.4",
"0.3",
"0.2",
"0.5",
"0.7",
"0.5",
"1"],
“pointStrokeColor”:“fff”,
“填充颜色”:“rgba(155220220,0.5)”,
“点颜色”:“rgba(155220220,1)”,
“strokeColor”:“rgba(155220220,1)”
}],
“标签”:[
"2013-01-01",
"2013-01-04",
"2013-01-15",
"2013-02-03",
"2013-03-25",
"2013-04-03",
"2013-04-14",
"2013-05-27",
"2013-05-27",
"2013-08-03"]
};
变量lineChartData2={
“数据集”:[{
“数据”:[
"0.5",
"0.2",
"3",
"0.4",
"0.3",
"2.2",
"2",
"0.7",
"0.5",
"1"],
“pointStrokeColor”:“fff”,
“填充颜色”:“rgba(155100220,0.5)”,
“点颜色”:“rgba(155100220,1)”,
“strokeColor”:“rgba(155100220,1)”
}],
“标签”:[
"2013-01-01",
"2013-01-04",
"2013-01-15",
"2013-02-03",
"2013-03-25",
"2013-04-03",
"2013-04-14",
"2013-05-27",
"2013-05-27",
"2013-08-03"]
};
var myLine=新图表(document.getElementById(“canvas1”).getContext(“2d”)).Line(lineChartData1);
var myLine2=新图表(document.getElementById(“canvas2”).getContext(“2d”)).Line(lineChartData2)

只有一个整数
不止一个整数

这在2.0版本中仍然有效吗?我记得看到有一个问题没有考虑到,但现在可能已经解决了。这是可行的,但并不完美。尝试将100作为一个值,然后它将不会显示(屏幕外)。这是正常的,因为你的脚本,但不是我想要的want@Quince-不知道2.0中是否有等效的东西。在2.0.0-beta文档中找不到任何东西-2.0.0-alpha代码中有一些东西(override.steps…等等),但是快速搜索没有在2.0.0-beta文件中找到任何东西(但我不太熟悉代码,不能肯定地说),我正在考虑这个问题,所以我意识到这不再是“真正的”问题。谢谢
var data = {
    labels: ["January", "February", "March", "April", "May", "June", "July"],
    datasets: [
        {
            label: "My First dataset",
            fillColor: "rgba(220,220,220,0.2)",
            strokeColor: "rgba(220,220,220,1)",
            pointColor: "rgba(220,220,220,1)",
            pointStrokeColor: "#fff",
            pointHighlightFill: "#fff",
            pointHighlightStroke: "rgba(220,220,220,1)",
            data: [0.65, 0.2, 0.80, 0.81, 0.56, 0.55, 0.8]
        },
        {
            data: [null, null, null, null, null, null, null, 1]
        }
    ]
};