新しいデータ系列が追加されたときに色が自動生成されるが、既にプロットされた他のすべてのデータ系列が自動的に生成されるように、同じ色のままです。flotでユーザseletedと自動生成された色を組み合わせる
最初に新しいデータ系列を追加するときは、カラーオプションを空のままにして、色が自動的に割り当てられるようにします。場合再プロット
は、私はその後、得られたカラーマップを見て、対応するデータ系列を再描画に同じ色を再割り当て
を再プロットする前に、既存のプロットから色情報を抽出します。
問題は、各データ系列の追加の間に$ .plotを呼び出してこのように連続してデータ系列を追加すると、同じ色に割り当てられた複数のデータ系列になります。
例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Color Test Harness</title>
<script src="./lib/jquery.js"></script>
<!--[if IE lte 8]><script src="../lib/excanvas.js"></script><![endif]-->
<script src="./lib/jquery.flot.js"></script>
</head>
<body>
<h1>Test graph</h1>
<div id="graph1" style="width:600px;height:300px;"></div>
<script type="text/javascript">
$(function() {
var data = [ [1, 2], [2, 3], [4, 1] ];
var plot = $.plot($("#graph1"), {}, {});
function findColors() {
var c = {};
if(plot != null) {
var series = plot.getData();
for(var i = 0; i < series.length; i++) {
var aSeries = series[i];
c[aSeries.label] = aSeries.color;
}
}
return c;
}
var all_data = [];
for(var i = 0; i < 5; i++) {
var colors = findColors();
var dataObj = { 'label' : "data" + i, 'data' : data };
all_data.push(dataObj);
for(var j = 0; j < all_data.length; j++) {
if(colors.hasOwnProperty(all_data[j].label)) {
all_data[j].color = colors[all_data[j].label];
}
}
plot = $.plot($("#graph1"), all_data, {});
}
})
</script>
</body>
</html>
は、どのように私はそれが既に他のデータ系列の1つに割り当て事前れていない色を使用して確認するために、色の発電機を得ることができますか?