Chart.js:曲線ではなく直線


111

Chart.JSを使用してデータセットをプロットしています。

しかし、スムーズな効果を得ました!

ここに私が持っている曲線があります:

ここに画像の説明を入力してください

これが私のコードです:

function plotChart(data, labels) {

    var lineChartData = {
        "datasets": [{
            "data": data,
            "pointStrokeColor": "#fff",
            "fillColor": "rgba(220,220,220,0.5)",
            "pointColor": "rgba(220,220,220,1)",
            "strokeColor": "rgba(220,220,220,1)"
        }],
        "labels": labels
    };

    var myLine = new Chart(document.getElementById("canvas").getContext("2d")).Line(lineChartData);

}

曲線の代わりに直線を使用するにはどうすればよいですか?

ありがとうございました

回答:


231

バージョン1のソリューション(古いチャートバージョン)

chartjs.orgのドキュメントによると

オプションで 'bezierCurve'を設定し、チャートを作成するときにそれを渡すことができます。

bezierCurve: false

例えば:

var options = {
    //Boolean - Whether the line is curved between points
    bezierCurve : false
};
var myLine = new Chart(document.getElementById("canvas").getContext("2d")).Line(lineChartData, options);

バージョン2の更新

グローバルオプションのライン構成の更新されたドキュメントによると

Name        Type    Default Description
tension     Number  0.4     Default bezier curve tension. Set to 0 for no bezier curves.

例えば:

var options = {
    elements: {
        line: {
            tension: 0
        }
    }
};

またlineTension、0(ゼロ)に設定することにより、データセット構造内で直接。

Property        Type    Usage
lineTension     Number  Bezier curve tension of the line. Set to 0 to draw straightlines. 
                        This option is ignored if monotone cubic interpolation is used. 
                        Note This was renamed from 'tension' but the old name still works.

これらの属性を使用したデータオブジェクトの例を以下に示します。

var lineChartData = {
    labels: labels,
    datasets: [
        {
            label: "My First dataset",
            lineTension: 0,           
            data: data,
        }
    ]
};

3
あなたbezierCurve: falseは直線を得る必要があります。true(デフォルト)は(
ベジエ

18
新しいv2.0では、これを行うために、を設定しtension:0ます。
scojomodena

5
た内容に応じて、最新の文書、使用してくださいlineTension単に「緊張」の代わりに
Sphro

58

lineTensionオプションを使用して、目的の曲線を設定できます。直線の場合は0を設定します。0〜1の数値を指定できます

data: {
    datasets: [{
        lineTension: 0
    }]
}

1
おかげで、これによりv2.7.1の問題が修正されます
mfink

4

lineTensionを使用して曲線の滑らかさを設定しました。

docsから:lineTensionは、ラインのベジェ曲線テンションを受け取ります。直線を描くには0に設定します。モノトーン3次補間が使用されている場合、このオプションは無視されます。

線の滑らかさをさまざまな値でテストしてください。

例えば:

var data = {
  labels: ["Jan", "Feb", "Mar"],
  datasets: [{
      label: "Label 1",
      lineTension: 0.2
    }, {
      label: "Stock B",
      lineTension: 0.2
    }

  ]
};


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.