2012-04-01 63 views
3

我有一个flot工具提示问题。我传递的是时间戳数据,它会反映为一个数字,例如1113340002003.我想要做的是,当我将鼠标悬停在数据点上时,它将反映为日期:01/04/2012而不是该数字。任何帮助将是伟大的!困在这里了几个小时....Flot工具提示盘旋

这是我传递什么阴谋:

var time = (new Date(dates[i])); 
graph.push([time, demand[i]]); 

这是我用来绘制图表中的数据部分:

var options = { 
series: { 
       lines: { show: true }, 
       points: { show: true } 
      }, 
      grid: { hoverable: true, clickable: true }, 
      yaxis: { min: 0, max: 20000 }, 
      xaxis: { 
       mode: "time", timeformat: "%d/%m/%y"} 

var plot = $.plot($("#placeholder"), 
     [ { data: graph, label: "price" } ], 
     options); 

function showTooltip(x, y, contents) { 
    $('<div id="tooltip">' + contents + '</div>').css({ 
     position: 'absolute', 
     display: 'none', 
     top: y + 5, 
     left: x + 5, 
     border: '1px solid #fdd', 
     padding: '2px', 
     'background-color': '#fee', 
     opacity: 0.80 
    }).appendTo("body").fadeIn(200); 
} 


var previousPoint = null; 
$("#placeholder").bind("plothover", function (event, pos, item) { 
    $("#x").text(pos.x.toFixed(2)); 
    $("#y").text(pos.y.toFixed(2)); 

    if($("#enableTooltip:checked").length > 0) { 
     if (item) { 
      if (previousPoint != item.dataIndex) { 
       previousPoint = item.dataIndex; 

       $("#tooltip").remove(); 

       var x = item.datapoint[0].toFixed(2), 
        y = item.datapoint[1].toFixed(2); 

        var td = x.split("/"); 

回答

3

只需将其转换为JavaScript数据对象,然后自行构建字符串即可。

var d = new Date(item.datapoint[0]); 
var someDay = d.getDate(); 
var someMonth = d.getMonth() + 1; //months are zero based 
var someYear = d.getFullYear(); 
var stringDate = someMonth + "/" + someDay + "/" + someYear; 

var x = stringDate; 
var y = item.datapoint[1].toFixed(2); 
+0

如何显示堆积条形图中的数字?比方说y轴上的3个diff值叠加在一起(正面,负面和中性响应),当我悬停在栏上的相应堆栈上时,如何显示正确的数字? – peter 2013-04-01 14:18:11

+0

@peter,请详细说明一个新问题。 – Mark 2013-04-01 17:26:56

+1

@peter,这似乎是你在问什么:http://stackoverflow.com/questions/3476349/flot-stacked-bar-chart-and-displaying-bar-values-on-mouse-over – Mark 2013-04-01 17:35:15