2015-12-21 4 views
29

Sto utilizzando Chart.JS per tracciare un set di dati,Chart.js: linee rette anziché curve

Tuttavia, ho ottenuto un effetto morbido!

Ecco la curva ho:

enter image description here

Qui è il mio codice:

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); 

} 

Come posso avere linee rette, invece di curve?

Grazie

risposta

65

Secondo documentation on chartjs.org

è possibile impostare la 'Curva di Bézier' in opzioni e passarlo a quando si crea il grafico.

bezierCurve: false 

esempio:

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

aggiornamento per la versione 2

Secondo la documentazione aggiornata per la configurazione di linea in opzioni globali

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

esempio:

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

E anche direttamente nella struttura del set di dati impostando lineTension su 0 (zero).

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. 

Un esempio di oggetto dati che utilizza questi attributi è mostrato di seguito.

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

È necessario 'bezierCurve: false' per ottenere una linea retta. true (il valore predefinito) fornisce una curva (bezier) – potatopeelings

+8

Con la nuova v2.0, per fare ciò, ora si imposta 'tension: 0'. – scojomodena

18

È possibile utilizzare l'opzione lineTension per impostare la curva desiderata. Imposta 0 per linee rette. È possibile specificare un numero compreso tra 0-1

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