[英]flot legend swatch usage
您好,在此先感謝您的幫助,指導和鼓勵。 我是一個精打細算的人...很大程度上是自學成才並且半成功。
所以這就是挑戰。 我有一個浮點圖,其中有一個自定義的圖例,其中包含色樣,持久色樣(它們不會關閉),數據集切換等所有內容。 但是只有在我可以看到默認圖例的情況下才會顯示色板。 也就是說,如果我將圖例設置為“ show:false”,則色板也不會顯示在我的自定義圖例中。
有沒有辦法關閉/隱藏默認圖例,但仍可以訪問自定義圖例可用的調色板/色板?
這是代碼塊...還有其他一些事情,為了清楚起見,我刪掉了一些...
var options = {
yaxis: { min: 0 },
xaxis: { tickDecimals: 0 },
xaxes: [{
axisLabel: 'Frequency (Hz)',
}],
yaxes: [{
position: 'left',
axisLabel: 'Power (dB)',
}],
series: {
lines: {
lineWidth: 2,
show: true
},
points: {
show: false
}
},
legend: {
container: $("#labeler<?php echo $i ?>"),
show: true,
labelFormatter: function(label, series) {
}
},
grid:{
hoverable: true
}
};
var track = 0;
// hard-code color indices to prevent them from shifting as
// datasets are turned on/off
var i = 0;
$.each(datasets, function(key, val) {
val.color = i;
++i;
});
// insert checkboxes
var choiceContainer = $("#choices<?php echo $i ?>");
choiceContainer.append('<table><tr>');
$.each(datasets, function(key, val) {
track = track + 1;
if (track == 1){
choiceContainer.append('<td width=\"100\">Left Channel</td>');
} else if(track == <?php echo $tracks ?>){
choiceContainer.append('</tr><tr>');
choiceContainer.append('<td>Right Channel</td>');
}
choiceContainer.append('<td width=\"45\"><input type="checkbox" name="' + key +
'" checked="checked" id="id' + key + '">' +
'<div style=\"width:18px; white-space:nowrap; float:left\"><bar /></div><label for="id' + key + '">'
+ val.label + '</label></td>');
});
choiceContainer.append('</tr></table>');
choiceContainer.find("input").change(plotAccordingToChoices);
function plotAccordingToChoices() {
var data = [];
choiceContainer.find("input:checked").each(function () {
var key = $(this).attr("name");
if (key && datasets[key])
data.push(datasets[key]);
});
if (data.length > 0){
$.plot($("#placeholder<?php echo $i ?>"), data, options);
}
}
plotAccordingToChoices();
$('.legendColorBox > div').each(function(i){
$(this).clone().prependTo(choiceContainer.find("bar").eq(i));
});
從您的代碼中,您似乎將“自定義”圖例附加到flot構建的圖例的克隆中。 如果禁用浮點圖例,則$('。legendColorBox> div')選擇器將找不到要克隆的內容。 您可以修改它並隱藏克隆后的原始flot圖例,或完全刪除對flot圖例的要求。
要隱藏原始圖例,只需執行以下操作:
$('.legend').eq(0).css('display','none');
在$.plot
調用之后。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.