Настройка цветов отдельных серий в HighCharts
Я использую HighCharts для линейного графика, и я пытаюсь изменить цвет линии для каждой серии. Я нашел этот пример здесь, но данные жестко закодированы. Мои данные извлекаются из базы данных Sql и передаются на HTML-страницу с использованием некоторого кода VB.
var chart;
$(document).ready(function () {
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
defaultSeriesType: 'column'
},
title: {
text: 'Chart Title'
},
subtitle: {
text: 'Chart subtitle'
},
xAxis: {
categories: [<%= GraphDate %>]
,
labels:
{
rotation: -45,
align: 'right',
style:
{
}
}
},
yAxis: {
min: 160,
title: {
text: 'Temp'
}
},
legend: {
layout: 'vertical',
backgroundColor: '#FFFFFF',
align: 'left',
verticalAlign: 'top',
x: 400,
y: 0,
floating: true,
shadow: true
},
tooltip: {
formatter: function () {
return '' +
this.x + ': ' + this.y + ' ºC';
}
},
plotOptions: {
column: {
pointPadding: 0.2,
borderWidth: 0
}
},
series:
[<%= GraphSeries %>],
});
Я попытался создать его с помощью другого сообщения, но он не смог создать диаграмму. Основная проблема заключается в том, что линейный граф имеет две серии, поэтому метод ниже будет устанавливать цвет для обеих серий, я предполагаю? Так, может, мне, наверное, понадобится отформатировать серию в моем коде VB?
series: [{
color: 'yellow',
data: [
[<%= GraphSeries %>]
]},
Edit:
$(document).ready(function () {
chart = new Highcharts.Chart({
colors: ['#4572A7', '#AA4643', '#89A54E', '#80699B', '#3D96AE', '#DB843D', '#92A8CD', '#A47D7C', '#B5CA92']
chart: {
renderTo: 'container',
defaultSeriesType: 'column'
}
Ответы
Ответ 1
Конфигурация верхнего уровня может содержать поле colors
. Это массив, из которого будут выбраны цвета серии.
См. здесь.
Здесь рабочая часть из моего проекта
var chart;
$(document).ready(function () {
chart = new Highcharts.Chart({
chart:{
renderTo:'perfchart',
type:'line',
marginRight:130,
marginBottom:25
},
colors: ['#0000FF', '#0066FF', '#00CCFF'],
title:{
text:'Historical system performance',
x:-20 //center
},
Внешний вид:
![highcharts colors]()
Ответ 2
См. код (и график, который он отображает) ниже.
Ниже приведен полный фрагмент script - i.e., либо помещаем его в разметку между двумя тегами script, либо как файл js-стоп файла с включенными в вашу разметку.
Colors
- объект Chart, поэтому самый простой способ - передать массив цветов (как шестнадцатеричные строки):
$(function () {
var chart;
$(document).ready(function() {
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'line'
},
colors: ['#562F1E', '#AF7F24', '#263249', '#5F7F90', '#D9CDB6'],
title: {
text: false
},
yAxis: {
title: {
text: false
}
},
series: [{
name: 'series I',
data: [17.4, 16.1, 19.45, 24.15, 28.44, 33.15, 37.2, 41.25, 43.3]
},
{
name: 'series II',
data: [13.19, 17.23, 25.74, 28.5, 33.9, 35.62, 37.0, 36.6, 34.82]
}
]
});
});
})
![enter image description here]()
Ответ 3
Цвет может быть настроен как часть серии. Попробуйте что-то вроде этого:
series: [
{
name: 'series I',
color: '#ffffff',
data: [17.4, 16.1, 19.45, 24.15, 28.44, 33.15, 37.2, 41.25, 43.3]
}
];