jQuery Flot:显示所有数据和Y轴悬停

6

您好, 我是一个jquery新手,正在尝试解决一个使用官方flot示例中的“turning-series.html”版本的问题。 1- 我想知道如何将它从显示所选项切换为显示来自我的数据集的所有内容。 2- 当鼠标悬停在点上时,如何更改选项以显示Y轴的值?

//My data instance:
var datasets = {
        "1st input": {
            label: "1st input",
            data: [
            [1.250208e+12, 1339],   
            [1.2502944e+12, 1316],      
            [1.2503808e+12, 1379],
            [1.2504672e+12, 1223],
             ]
        },
        "2nd input": {
            label: "2nd input",
            data: [
            [1.2503808e+12, 1324],

            ]
        },
    };


//old one, instead of displaying the selected ones from choiceContainer, I want to display all.
    function showWhole() {
        var data = [];
        choiceContainer.find("option:selected").each(function () {
            var key = $(this).attr("name");
            if (key && datasets[key])
                data.push(datasets[key]);
        });

        if (data.length > 0)
            $.plot($("#placeholder"), data, {
                yaxis: {},
                xaxis: { mode: "time",minTickSize: [1, "day"],timeformat: "%d/%m/%y"},"lines": {"show": "true"},"points": {"show": "true"},clickable:true,hoverable: true
            });
    }

Regards

1个回答

17
我从FLOT网站上取了turning-series.html的例子并做了一些修改。请将以下内容复制粘贴到新的HTML文件中并运行它 - 它在Firefox中可行,但未在IE中测试过。
<html>
 <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Flot Examples</title>
    <link href="http://people.iola.dk/olau/flot/examples/layout.css" rel="stylesheet" type="text/css"></link>
    <!--[if IE]><script language="javascript" type="text/javascript" src="http://people.iola.dk/olau/flot/excanvas.pack.js"></script><![endif]-->
    <script language="javascript" type="text/javascript" src="http://people.iola.dk/olau/flot/jquery.js"></script>
    <script language="javascript" type="text/javascript" src="http://people.iola.dk/olau/flot/jquery.flot.js"></script>
    <style> #tooltip { font-size:8pt; } </style>
 </head>
    <body>
    <h1>Flot示例</h1>
<div id="placeholder" style="width:600px;height:300px;"></div>
<p>这是一个真实数据的示例:各国军事预算以恒定(2005)百万美元计(来源:<a href="http://www.sipri.org/">SIPRI</a>)。</p>
<script id="source" language="javascript" type="text/javascript"> $(function () { var datasets = { "usa": { label: "美国",data: [[1988, 98223], [1989, 92563], [1990, 81703], [1991, 77195], [1992, 65768], [1993, 62740], [1994, 58346], [1995, 55998], [1996, 54051], [1997, 52118], [1998, 50829], [1999, 51106], [2000, 51434], [2001, 50572], [2002, 52933], [2003, 54252], [2004, 56520], [2005, 57328], [2006, 58524]] } 该代码段是一个使用jQuery和Flot库绘制图表的示例。该示例定义了一个包含数据点的数组,并将其用于创建折线图。鼠标悬停在数据点上时,将显示数据点的值以及相关信息的工具提示。
以下是翻译后的代码:
var datasets = { label: "数据集1", data: [[1988, 55627], [1989, 55475], [1990, 58464], [1991, 55134], [1992, 52436], [1993, 47139], [1994, 43962], [1995, 43238], [1996, 42395], [1997, 40854], [1998, 40993], [1999, 41822], [2000, 41147], [2001, 40474], [2002, 40604], [2003, 40044], [2004, 38816], [2005, 38060], [2006, 36984]], color: 0 }; var data = []; var i = 0; $.each(datasets, function(key, val) { val.color = i; ++i;
data.push(datasets[key]); }); $.plot($("#placeholder"), data, { yaxis: { min: 0 }, xaxis: { tickDecimals: 0 }, grid: { hoverable: true, clickable: true }, points: { show: true }, lines: { show: true }, }); var previousPoint = null; $("#placeholder").bind("plothover", function (event, pos, item) { $("#x").text(pos.x.toFixed(2)); $("#y").text(pos.y.toFixed(2));
if (item) { if (previousPoint != item.datapoint) { previousPoint = item.datapoint; $("#tooltip").remove(); var x = item.datapoint[0].toFixed(2), y = item.datapoint[1].toFixed(2); showTooltip(item.pageX, item.pageY, item.series.label + " of " + x + " = " + y); } } else { $("#tooltip").remove(); previousPoint = null; }
}); function showTooltip(x, y, contents) { // 显示工具提示 }$('<div id="tooltip">' + contents + '</div>').css( { position: 'absolute', display: 'none', top: y - 35, left: x + 5, border: '1px solid #fdd', padding: '2px', 'background-color': '#fee', opacity: 0.80 }).appendTo("body").fadeIn(200); }
}); 以上代码用于创建和显示一个提示框,内容由变量contents决定。创建的提示框是一个div元素,其位置使用绝对定位方式(position: 'absolute')设置,这个提示框最初是隐藏状态(display: 'none'),然后将其添加到HTML文档的主体部分中("body"),并通过动画方式淡入(fadeIn)显示出来。提示框有边框(border)、内填充(padding)、背景颜色('background-color')等样式属性,可以通过CSS属性进行修改。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接