views:

2520

answers:

2

Greetings I am a jquery newbie and trying to fix an issue which uses a version of "turning-series.html" from the official flot examples, 1- I am wondering how can I swith it from display selected to display all from my datasets. 2- How to change my options so when mouse over the point, it displays the value of the Y axis ?

//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

+2  A: 

I took the example turning-series.html from FLOT website and made some changes. Copy and paste the following into a new HTML file and run it - works in Firefox, not tested in 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"&gt;&lt;/script&gt;&lt;![endif]--&gt;
    <script language="javascript" type="text/javascript" src="http://people.iola.dk/olau/flot/jquery.js"&gt;&lt;/script&gt;
    <script language="javascript" type="text/javascript" src="http://people.iola.dk/olau/flot/jquery.flot.js"&gt;&lt;/script&gt;
    <style> #tooltip { font-size:8pt; } </style>
 </head>
    <body>
    <h1>Flot Examples</h1>

    <div id="placeholder" style="width:600px;height:300px;"></div>

    <p>Here is an example with real data: military budgets for
        various countries in constant (2005) million US dollars (source: <a href="http://www.sipri.org/"&gt;SIPRI&lt;/a&gt;).&lt;/p&gt;


<script id="source" language="javascript" type="text/javascript">
$(function () {
    var datasets = {
        "usa": {
            label: "USA",
            data: [[1988, 483994], [1989, 479060], [1990, 457648], [1991, 401949], [1992, 424705], [1993, 402375], [1994, 377867], [1995, 357382], [1996, 337946], [1997, 336185], [1998, 328611], [1999, 329421], [2000, 342172], [2001, 344932], [2002, 387303], [2003, 440813], [2004, 480451], [2005, 504638], [2006, 528692]]
        },        
        "russia": {
            label: "Russia",
            data: [[1988, 218000], [1989, 203000], [1990, 171000], [1992, 42500], [1993, 37600], [1994, 36600], [1995, 21700], [1996, 19200], [1997, 21300], [1998, 13600], [1999, 14000], [2000, 19100], [2001, 21300], [2002, 23600], [2003, 25100], [2004, 26100], [2005, 31100], [2006, 34700]]
        },
        "uk": {
            label: "UK",
            data: [[1988, 62982], [1989, 62027], [1990, 60696], [1991, 62348], [1992, 58560], [1993, 56393], [1994, 54579], [1995, 50818], [1996, 50554], [1997, 48276], [1998, 47691], [1999, 47529], [2000, 47778], [2001, 48760], [2002, 50949], [2003, 57452], [2004, 60234], [2005, 60076], [2006, 59213]]
        },
        "germany": {
            label: "Germany",
            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]]
        },
    };


    // define an empty array
    var data = [];

    // use this existing loop...
    var i = 0;
    $.each(datasets, function(key, val) {
       val.color = i;
       ++i;

       // ... and add this line - so the data array is populated (row by row)
     data.push(datasets[key]);
    });

    // plot the graph with the newly populated data array
    $.plot($("#placeholder"), data, {
                yaxis: { min: 0 },
                xaxis: { tickDecimals: 0 },
       grid: { hoverable: true, clickable: true },
       points: { show: true },
       lines: { show: true },
            });


    // add some hovering logic to each point...
     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;            
            }

    });

    // show the tooltip
    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);
    }

});
</script>

</body>
</html>

robnardo
wow, I am greatful for your help, works like a charm! cheers
hey crib, no problem
robnardo
A: 

hey. I have question. how can i show all y axis values near to point, without hovering on point??

eba