Ich verwende ChartJS in einem Projekt, an dem ich arbeite, und ich benötige eine andere Farbe für jeden Balken in einem Balkendiagramm.
Hier ist ein Beispiel für den Balkendiagramm-Datensatz:
var barChartData = {
labels: ["001", "002", "003", "004", "005", "006", "007"],
datasets: [{
label: "My First dataset",
fillColor: "rgba(220,220,220,0.5)",
strokeColor: "rgba(220,220,220,0.8)",
highlightFill: "rgba(220,220,220,0.75)",
highlightStroke: "rgba(220,220,220,1)",
data: [20, 59, 80, 81, 56, 55, 40]
}]
};
Gibt es eine Möglichkeit, jeden Balken anders zu bemalen?
javascript
chart.js
BoooYaKa
quelle
quelle
fillColor
eines Datasets als Array festlegen können, und chart.js durchläuft das Array und wählt die nächste Farbe für jeden gezeichneten Balken aus.Antworten:
Lösung: Rufen Sie die Aktualisierungsmethode auf, um neue Werte festzulegen:
quelle
fillColor = "#FFFFFF;"
in Chrome tun können , aber das letzte Semikolon sollte nicht vorhanden sein und FF und IE akzeptieren es nicht.Ab Version 2 können Sie einfach über die
backgroundColor
Eigenschaft ein Array von Werten angeben, die einer Farbe für jeden Balken entsprechen :Dies ist auch möglich , dass die
borderColor
,hoverBackgroundColor
,hoverBorderColor
.Aus der Dokumentation zu den Eigenschaften des Balkendiagramm-Datensatzes :
quelle
Nachdem ich in die Datei Chart.Bar.js geschaut habe, habe ich es geschafft, die Lösung zu finden. Ich habe diese Funktion verwendet, um eine zufällige Farbe zu erzeugen:
Ich habe es am Ende der Datei hinzugefügt und diese Funktion direkt in der "fillColor:" unter aufgerufen
so sieht es jetzt aus:
und es funktioniert, ich bekomme unterschiedliche Farben für jeden Balken.
quelle
Wenn Sie sich die Bibliothek " ChartNew " ansehen, die auf Chart.js aufbaut, können Sie dies tun, indem Sie die Werte wie folgt als Array übergeben:
quelle
Sie können diese Funktion aufrufen, die für jeden Balken zufällige Farben generiert
quelle
backgroundColor: randomColorGenerator,
anstelle des Ergebnisses einer Funktion festlegenbackgroundColor: randomColorGenerator(),
. Die Funktion wird für jedes Element anstatt einmal für alle aufgerufen.Ab August 2019 ist in Chart.js diese Funktionalität integriert.
Sie müssen backgroundColor lediglich ein Array bereitstellen.
Beispiel aus https://www.chartjs.org/docs/latest/getting-started/
Vor:
Nach dem:
Ich habe diese Methode gerade getestet und sie funktioniert. Jeder Balken hat eine andere Farbe.
quelle
Hier habe ich dieses Problem gelöst, indem ich zwei Funktionen erstellt habe.
1. dynamicColors (), um zufällige Farben zu erzeugen
2. poolColors (), um ein Array von Farben zu erstellen
Dann einfach weitergeben
quelle
Generieren Sie zufällige Farben.
und nenne es für jeden Datensatz;
endlich Farben setzen;
quelle
Hier ist eine Möglichkeit, konsistente Zufallsfarben mithilfe von Farb-Hash zu generieren
quelle
So ging ich vor: Ich habe ein Array "Farben" mit der gleichen Anzahl von Einträgen wie die Anzahl von Daten gepusht. Dazu habe ich am Ende des Skripts eine Funktion "getRandomColor" hinzugefügt. Ich hoffe es hilft...
quelle
Wenn Sie NewChart.js nicht verwenden können, müssen Sie nur die Art und Weise ändern, wie die Farbe stattdessen mithilfe des Arrays festgelegt wird. Suchen Sie die Hilfsiteration in Chart.js:
Ersetzen Sie diese Zeile:
Für dieses:
Der resultierende Code:
Und in deinem js:
quelle
Versuche dies :
quelle
Dies funktioniert bei mir in der aktuellen Version
2.7.1
:}}
quelle
Mit der anderen Antwort finden Sie hier eine schnelle Lösung, wenn Sie eine Liste mit zufälligen Farben für jeden Balken erhalten möchten:
Jetzt können Sie diese Funktion im Feld backgroundColor in Daten verwenden:
quelle
function getRandomColor(n) { var letters = '0123456789ABCDEF'.split(''); var color = '#'; for (var i = 0; i < 6; i++) { color += letters[Math.floor(Math.random() * 16)]; } return color; }
.Ich habe dieses Problem erst kürzlich erhalten und hier ist meine Lösung
quelle
Code basierend auf der folgenden Pull-Anfrage :
quelle
Wenn Sie wissen, welche Farben Sie möchten, können Sie die Farbeigenschaften in einem Array wie folgt angeben:
quelle
Sie können einfach mit Livegap-Diagrammen generieren.
Wählen Sie Mulicolors aus dem Balkenmenü
(Quelle: livegap.com )
** Die verwendete Diagrammbibliothek ist chartnew.js modifizierte Version der chart.js-Bibliothek
mit chartnew.js-Code
quelle