0
我想顯示一定時間範圍內的最小值和最大值之間的時間間隔。例如:關於x軸如何在flot線圖中的x軸上顯示時間?
我將讀取從數據庫中的所有的值(已日期時間存儲在2015-04-30 10:27:58
格式並使其通過的webmethod
如果我創建2015-04-30 10:20:00
和2015-04-30 10:30:00
var data1
作爲
var data1 = [
['2015-04-30 10:27:58', 1690.25], ...
];
它不會工作所以我猜我需要在創建var data1時轉換'2015-04-30 10:27:58'
毫秒的刻度
但是我不wa nt以正確的時間格式顯示時間,例如10:27:58
,而不是在x軸上的1430369878000
。 (我想排除日期部分)。
我該如何做到這一點?
//RED
var data1 = [
[1430369878000, 1690.25], [1430369879000, 1696.3], [1430369880000, 1659.65]
];
//BLUE
var data2 = [
[1430369878000, 1682.1], [1430369879000, 1680.65], [1430369880000, 1685.1]
];
var dataset = [
{
label: "Sell out",
data: data1,
color: "#FF0000",
points: { fillColor: "#FF0000", show: true },
lines: { show: true }
},
{
label: "Buy in",
data: data2,
color: "#0062E3",
points: { fillColor: "#0062E3", show: true },
lines: { show: true }
}
];
var options = {
series: {
shadowSize: 5
},
xaxes: { mode: "time",
min: parseInt((new Date("2015-04-30 10:27:58")).getTime()),
max: parseInt((new Date("2015-04-30 10:43:39")).getTime()),
timeformat: "%H/%M/%S"
},
yaxis: {
color: "black",
tickDecimals: 2,
axisLabel: "Gold Price in USD/oz",
axisLabelUseCanvas: true,
axisLabelFontSizePixels: 12,
axisLabelFontFamily: 'Verdana, Arial',
axisLabelPadding: 6
},
legend: {
noColumns: 0,
labelFormatter: function (label, series) {
return "<font color=\"white\">" + label + "</font>";
},
backgroundColor: "#000",
backgroundOpacity: 0.9,
labelBoxBorderColor: "#000000",
position: "nw"
},
grid: {
hoverable: true,
borderWidth: 3,
mouseActiveRadius: 50,
backgroundColor: { colors: ["#ffffff", "#EDF5FF"] },
axisMargin: 20
}
};
$(document).ready(function() {
setInterval(function() {
$.plot($("#flot-placeholder"), dataset, options);
$("#flot-placeholder").UseTooltip();
}, 1000)
});
var previousPoint = null, previousLabel = null;
$.fn.UseTooltip = function() {
$(this).bind("plothover", function (event, pos, item) {
if (item) {
if ((previousLabel != item.series.label) || (previousPoint != item.dataIndex)) {
previousPoint = item.dataIndex;
previousLabel = item.series.label;
$("#tooltip").remove();
var x = item.datapoint[0];
var y = item.datapoint[1];
var date = new Date(x);
var color = item.series.color;
showTooltip(item.pageX, item.pageY, color,
"<strong>" + item.series.label + "</strong><br>" +
x +
" : <strong>" + y + "</strong> (USD/oz)");
}
} else {
$("#tooltip").remove();
previousPoint = null;
}
});
};
function showTooltip(x, y, color, contents) {
$('<div id="tooltip">' + contents + '</div>').css({
position: 'absolute',
display: 'none',
top: y,
left: x,
border: '2px solid ' + color,
padding: '3px',
'font-size': '9px',
'border-radius': '5px',
'background-color': '#fff',
'font-family': 'Verdana, Arial, Helvetica, Tahoma, sans-serif',
opacity: 0.9
}).appendTo("body").fadeIn(200);
}
+1謝謝。這是工作。 順便說一句在左上角顯示紅色和藍色方框與相應標籤的小盒子保持閃爍,因爲我使用'setInterval'我可以通過任何機會阻止閃爍? – Arbaaz
您可以嘗試按照[本答案](http://stackoverflow.com/a/6033312/2610249)中所述的方法使用'setData()'和'draw()'。但是當你改變座標軸或最小/最大值並且需要使用'setupGrid()'時,圖例每次都會重繪,因此會閃爍。然後你可以嘗試圖表外的圖例,查看[legend]的'container'選項(https://github.com/flot/flot/blob/master/API.md#customizing-the-legend)。 – Raidri
我刪除了選項中的圖例部分,我認爲它正是我想要的內容https://jsfiddle.net/7v56hs00/1/ – Arbaaz