Ich habe ChartJS Version 2.6 in einer Ionic 3/Angular 4 App. In meiner Liniendiagrammkonfiguration habe ich 2 Datensätze. Ich bin stecken geblieben und habe versucht, beide Linien mit ihren eigenen Füllgradienten zu versehen.ChartJS 2 Zeilen mit jeweils unterschiedlichen Füllgradienten
Ich brauche etwas wie folgt aus:
Aber bisher habe ich es geschafft nur so etwas wie dieses:
Egal, was ich versuche, meine erste Daten-Set-Chart immer Übermacht die zweite. Wie es die zweite versteckt.
Hier ist das Diagramm Config ich versuche:
let chart = this.lineCanvas.nativeElement.getContext('2d'),
gradientSys = chart.createLinearGradient(0, 200, 0, 0);
gradientSys.addColorStop(0.4, 'rgba(49, 218, 11, 1)');
gradientSys.addColorStop(0.7, 'rgba(218, 129, 11, 1)');
gradientSys.addColorStop(1.0, 'rgba(218, 11, 11, 1)');
let gradientDia = chart.createLinearGradient(0, 120, 0, 0);
gradientDia.addColorStop(0.4, 'rgba(49, 218, 11, 1)');
gradientDia.addColorStop(0.6, 'rgba(218, 129, 11, 1)');
gradientDia.addColorStop(1.0, 'rgba(218, 11, 11, 1)');
this.chartConfig = {
type: 'line',
options: {
scales: {
yAxes: [{
ticks: {
min: 0,
callback: function (value, index, values) {
if (Math.floor(value) === value) {
return value;
}
}
}
}]
}
},
data: {
labels: [],
datasets: [
{
label: 'Systolic',
fill: true,
lineTension: 0.1,
backgroundColor: gradientSys,
borderColor: "rgba(115, 115, 115, 1)",
borderCapStyle: 'butt',
borderDash: [],
borderDashOffset: 1.0,
borderJoinStyle: 'miter',
pointBorderColor: "rgba(115, 115, 115, 1)",
pointBackgroundColor: "#fff",
pointBorderWidth: 1,
pointHoverRadius: 5,
pointHoverBackgroundColor: "rgba(115, 115, 115, 1)",
pointHoverBorderColor: "rgba(115, 115, 115, 1)",
pointHoverBorderWidth: 2,
pointRadius: 3,
pointHitRadius: 10,
spanGaps: false,
data: []
},
{
label: 'Diastolic',
fill: true,
lineTension: 0.1,
backgroundColor: gradientDia,
borderColor: 'rgba(115, 115, 115, 1)',
borderCapStyle: 'butt',
borderDash: [],
borderDashOffset: 1.0,
borderJoinStyle: 'miter',
pointBorderColor: 'rgba(115, 115, 115, 1)',
pointBackgroundColor: "#fff",
pointBorderWidth: 1,
pointHoverRadius: 5,
pointHoverBackgroundColor: 'rgba(115, 115, 115, 1)',
pointHoverBorderColor: 'rgba(115, 115, 115, 1)',
pointHoverBorderWidth: 2,
pointRadius: 3,
pointHitRadius: 10,
spanGaps: false,
data: []
}
]
}
};
Die Daten [] Werte sind leer da, wie ich sie aus der Datenbank später eingestellt, nachdem ich bekam. Ich habe versucht, den Füllwert für den 1. Datensatz als '-1' zu setzen, aber das bricht. Bitte zeigen Sie mir hier in die richtige Richtung?
Haben Sie versucht, die beiden Array-Einträge im 'Datensatz' zu tauschen? Es ist nicht klar, ob das zweite Bild, das du zeigst, systolisch oder diastolisch ist, aber wenn es das letztere ist, würde ich vermuten, dass Eintrag 1 über Eintrag 0 plotten wird. Wenn Systolic immer niedriger sein wird, mache das den letzten Eintrag , so ist es zuletzt geplottet? – halfer
Die andere Sache, über die Sie nachdenken könnten, ist das Erstellen von zwei Diagrammobjekten, die übereinander liegen. Wenn das Umklappen der Datenreihenfolge nicht hilft, erstellen Sie zwei Diagramme, sodass stattdessen die Diagramm-Z-Indizes gespiegelt werden können. – halfer
Hallo @halfer vielen Dank! Systolisch ist das zu einem ja, beim Umblättern der Datensätze funktionierte es! – lulu88