2016-07-07 12 views
7

Ich habe zwei Arten von Diagrammen Balken und Linie. Dies ist meiner Meinung nach (in slim):Die Farbe im Liniendiagramm kann nicht analysiert werden (angular-chart.js)

canvas#line.chart.chart-line(
     ng-if="stateStats == 'global'" 
     chart-data="data" 
     chart-labels="labels" 
     chart-colours="colours" 
    ) 
    canvas#bar.chart.chart-bar(
     ng-if="stateStats != 'global' && data.length != 0" 
     chart-data="data" 
     chart-labels="labels" 
     chart-options="optionsBarChart" 
    ) 

Meine Farben Option:

$scope.colours = [{ 
    fillColor: "rgba(151,187,205,0.2)", 
    strokeColor: "rgba(151,187,205,1)", 
    pointColor: "rgba(151,187,205,1)", 
    pointStrokeColor: "#fff", 
    pointHighlightFill: "#fff", 
    pointHighlightStroke: "rgba(151,187,205,0.8)" 
    }]; 

Mein Problem ist, dass ich nicht eine Farbe Anzeige von Daten auf Liniendiagramm ändern können. Und wenn ich den Cursor auf den Punkt bewegen möchte - ich habe Fehler:

Uncaught Fehler: Kann nicht Farbe von Objekt ["rgba (151,187,205,1)", "rgba (220,220,220,1)" parsen) ... ] Was habe ich falsch gemacht?

+0

Können Sie versuchen, einen vollständigen Repro Fall mit diesem [template] schreiben (http://jsbin.com/cucoqe/1/edit?html,js,output)? – jtblin

+7

Hatte das gleiche Problem, wenn ich mein Daten-Array direkt übergeben habe. Stattdessen sollte es innerhalb eines anderen Arrays, z.B. data = "[[1, 2, 3]]". Kann nicht sagen, ob Sie das gleiche Problem haben, da Sie die Datendefinition nicht eingeschlossen haben. – tom

Antwort

40

Bitte stellen Sie sicher, dass Ihre Daten auf Double-Array sind.

Ex:

data = [ 
    [10, 20, 30, 20, 10] 
]; 
+0

danke dafür :) – vin

+0

hehe :-D Ich verschwendete fast einen Tag :-P Und herzlich willkommen :) –

+0

spot on, danke! – camara90100

9

ich chart.js wurde mit und hatte die gleiche Ausnahme, wenn sie über einen Punkt schweben. Wenn ich meine Daten in ein doppeltes Array legte, zeigte das Diagramm nichts.

Lösung: Wenn das Diagramm vom Typ "Linie" ist, nimmt es nicht eine Reihe Farben für Hintergrund und Rand, aber einzelne Farben. Das ist für mich gearbeitet:

var chart = new Chart(chartCanvas, { 
    type : 'line', 
    data : { 
     labels : dates, 
     datasets : [{ 
       label : 'Error', 
       data : errorCounts, 
       backgroundColor : 'rgba(255, 99, 132, 0.2)', 
       borderColor : 'rgba(255,99,132,1)', 
       borderWidth : 1 
      }, { 
       label : 'Ok', 
       data : okCounts, 
       backgroundColor : 'rgba(75, 202, 72, 0.2)', 
       borderColor : 'rgba(117,239,95,1)', 
       borderWidth : 1 
      } 
     ] 
    }, 
    options : { 
     responsive : true, 
     scales : { 
      yAxes : [{ 
        ticks : { 
         beginAtZero : true 
        } 
       } 
      ] 
     } 
    } 
}); 
+0

Das war mein Fehler, danke –

Verwandte Themen