Highchartsを使用していますが、棒グラフの上位3つの結果を、グラフの残りの部分とは異なる色の棒にすることができるかどうか疑問に思っていました。 CSVファイルからグラフを作成しています。
これが私のJavaScriptです:
$(document).ready(function() {
var options = {
chart: {
renderTo: 'container',
defaultSeriesType: 'bar'
},
title: {
text: 'Spiritual Gifts Results'
},
colors: [
'#3BBEE3'
],
xAxis: {
categories: []
},
yAxis: {
title: {
text: 'Service'
}
},
series: []
};
var data = document.getElementById("<%= hdn_Data.ClientID %>");
// Split the lines
if (data.value != "") {
var lines = data.value.split('\n');
// Iterate over the lines and add categories or series
$.each(lines, function(lineNo, line) {
var items = line.split(',');
// header line containes categories
if (lineNo == 0) {
$.each(items, function(itemNo, item) {
if (itemNo > 0) options.xAxis.categories.Push(item);
});
}
// the rest of the lines contain data with their name in the first position
else {
var series = {
data: []
};
$.each(items, function(itemNo, item) {
if (itemNo == 0) {
series.name = item;
} else {
series.data.Push(parseFloat(item));
}
});
options.series.Push(series);
}
});
// Create the chart
var chart1 = new Highcharts.Chart(options);
}
});
これがサンプルCSVです:
Categories,Administration,Evangelism,Mercy,Shepherding,Leadership,Wisdom,Teaching
Total Points,11,5,4,4,3,2,1
したがって、この例では、「管理」、「伝道」、「慈悲」に「青いバーの色」を付け、「羊飼い」、「リーダーシップ」などに「赤いバーの色」を付けたいと思います。
これは可能ですか?
これが フィドル
OPのコメントに基づいて、私の前の答えを打ちました。
あなたがしているように、
series.name = item;
そして
series.data.Push(parseFloat(item));
賢明なように、あなたはすることができます、
series.color: '#f6f6f6'
(ループ内で条件に基づいて色を変更できます)
できるよ、
$(document).ready(function() {
var options = {
chart: {
renderTo: 'container',
defaultSeriesType: 'bar'
},
title: {
text: 'Spiritual Gifts Results'
},
colors: [
'#3BBEE3'
],
xAxis: {
categories: []
},
yAxis: {
title: {
text: 'Service'
}
},
series: []
};
var data = document.getElementById("hdn_Data");
// Split the lines
if (data.value != "") {
var lines = data.value.split('\n');
// Iterate over the lines and add categories or series
$.each(lines, function(lineNo, line) {
var items = line.split(',');
// header line containes categories
if (lineNo == 0) {
$.each(items, function(itemNo, item) {
if (itemNo > 0) options.xAxis.categories.Push(item);
});
}
// the rest of the lines contain data with their name in the first position
else {
var series = {
data: []
};
$.each(items, function(itemNo, item) {
var data = {};
if (itemNo == 0) {
series.name = item;
} else {
data.y = parseFloat(item);
if (itemNo <= 3) {
data.color = 'Gray';
}
else {
data.color = '#3BBEE3';
}
series.data.Push(data);
}
});
options.series.Push(series);
}
});
// Create the chart
var chart1 = new Highcharts.Chart(options);
}
});
this を参照してください。data
は3つの方法で指定できます。私は3番目のものを使用しました。
これが例です
data: [
{ y: 34.4, color: 'red'}, // this point is red
21.8, // default blue
{y: 20.1, color: '#aaff99'}, // this will be greenish
20 // default blue
]
はい、プッシュ実行では、そのポイントの色を設定できるはずです。送信するプリコンパイル済みデータオブジェクトを使用するため、Pushについてはあまり詳しくありません。ただし、.NET内では、特定のポイントに色を設定し(必要な場合)、データオブジェクトをグラフに送信します。