`
cuisuqiang
  • 浏览: 3960471 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
3feb66c0-2fb6-35ff-968a-5f5ec10ada43
Java研发技术指南
浏览量:3670255
社区版块
存档分类
最新评论

JS绘图Flot应用-可选显示曲线图

    博客分类:
  • JS
阅读更多

刚刚做了可以动态去刷新的曲线图,下面再来实现一个可以选择显示那个显示值的曲线图。

其他内容请点击查看!

首先看一下效果:

 

 

下面的多选框,选择以后会触发一个事件,等同与重新绘制了曲线图

重点是需要的数据的格式,我们来看一下代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Flot可选绘图测试</title>
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="excanvas.min.js"></script><![endif]-->
<script language="javascript" type="text/javascript" src="jquery.js"></script>
<script language="javascript" type="text/javascript" src="jquery.flot.js"></script>
<script 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]]
        },
        "denmark": {
            label: "Denmark",
            data: [[1988, 3813], [1989, 3719], [1990, 3722], [1991, 3789], [1992, 3720], [1993, 3730], [1994, 3636], [1995, 3598], [1996, 3610], [1997, 3655], [1998, 3695], [1999, 3673], [2000, 3553], [2001, 3774], [2002, 3728], [2003, 3618], [2004, 3638], [2005, 3467], [2006, 3770]]
        },
        "sweden": {
            label: "Sweden",
            data: [[1988, 6402], [1989, 6474], [1990, 6605], [1991, 6209], [1992, 6035], [1993, 6020], [1994, 6000], [1995, 6018], [1996, 3958], [1997, 5780], [1998, 5954], [1999, 6178], [2000, 6411], [2001, 5993], [2002, 5833], [2003, 5791], [2004, 5450], [2005, 5521], [2006, 5271]]
        },
        "norway": {
            label: "Norway",
            data: [[1988, 4382], [1989, 4498], [1990, 4535], [1991, 4398], [1992, 4766], [1993, 4441], [1994, 4670], [1995, 4217], [1996, 4275], [1997, 4203], [1998, 4482], [1999, 4506], [2000, 4358], [2001, 4385], [2002, 5269], [2003, 5066], [2004, 5194], [2005, 4887], [2006, 4891]]
        }
    };
	// 对象要显示的颜色,使用JQuery循环,然后为对象增加一个 color 属性
    var i = 0;
    $.each(datasets, function(key, val) {
        val.color = i;
        ++i;
    });    
    // 增加选择可显示国家的多选框
    var choiceContainer = $("#choices");
    $.each(datasets, function(key, val) {
        choiceContainer.append('<br/><input type="checkbox" name="' + key +
                               '" checked="checked" id="id' + key + '">' +
                               '<label for="id' + key + '">'
                                + val.label + '</label>');
    });
	// 为可选框增加点击事件
    choiceContainer.find("input").click(plotAccordingToChoices); 
	// 多选框点击事件,用于移除或增加某个国家的显示
    function plotAccordingToChoices() {
        var data = [];
        choiceContainer.find("input:checked").each(function () {
			// 多选框的名字
            var key = $(this).attr("name");
			// 有该属性,并且有该属性为Key的数据,则增加到显示区
            if (key && datasets[key])
                data.push(datasets[key]);
        });
		// 如果有数据则设置数据。等同与把图形重绘了,所以移除某个国家时可以不再显示
        if (data.length > 0)
            $.plot($("#placeholder"), data, {
                yaxis: { min: 0 },
                xaxis: { tickDecimals: 0 }
            });
    }
	// 调用一次以显示某写国家的值
    plotAccordingToChoices();
});
</script>
</head>
<body>
<div id="placeholder" style="width:600px;height:300px;"></div>
<p id="choices">Show:</p>
</body>
</html>

 

选择某个多选框的话会显示其曲线。

以上示例来自官方并简单修改和增加了注释,希望对一些人有所帮助。

 

请您到ITEYE看我的原创:http://cuisuqiang.iteye.com

或支持我的个人博客,地址:http://www.javacui.com

 

下面是需要的文件!

分享到:
评论

相关推荐

    JS绘图Flot应用-简单曲线图

    本篇文章将深入探讨如何利用Flot库在网页中创建简单的曲线图。 首先,我们需要了解Flot的基本结构。Flot的绘图过程主要分为两个步骤:准备数据和配置选项。数据通常是以数组的形式存储,每个数组元素代表一个数据点...

    JS绘图Flot应用 动态曲线图

    **JS绘图Flot应用:动态曲线图** Flot是一个基于JavaScript的开源库,专门用于在Web页面上绘制高质量的图形。它利用HTML5的canvas元素进行绘图,提供了丰富的图表类型,包括线图、面积图、饼图等。在这个案例中,...

    flot-flot-0.8.0-26-g2347c9a.zip

    Flot的插件生态系统丰富,例如`jquery.flot.time.js`用于处理时间轴,`jquery.flot.selection.js`实现选区功能,`jquery.flot.stack.js`用于绘制堆叠图表等。通过这些插件,可以进一步增强图表的功能和表现力。 6....

    JS绘图Flot如何实现可选显示曲线图功能

    刚刚做了可以动态去刷新的曲线图,下面再来实现一个可以选择显示那个显示值的曲线图。 首先看一下效果: 下面的多选框,选择以后会触发一个事件,等同与重新绘制了曲线图。 重点是需要的数据的格式,我们来看一下...

    jquery绘图插件-flot

    **jQuery绘图插件Flot详解** Flot是一款强大的基于JavaScript的绘图库,它完全依赖于jQuery,为Web开发者提供了在网页上绘制各种图表的能力。由Ole Laursen精心设计和开发,Flot以其易用性、灵活性和丰富的可视化...

    flot 插件 --- 鼠标点击和滑过标签的简单动画

    Flot的核心在于其强大的绘图API,它允许开发者通过数组或对象来定义数据系列,然后使用这些数据绘制出各种类型的图表,如线图、饼图、柱状图等。例如,创建一个简单的线图,我们可以这样做: ```javascript var ...

    Js 绘图 Flot 示例

    这个“Js 绘图 Flot 示例”是为初学者和开发者提供的学习资源,帮助他们掌握如何使用 Flot 来实现动态数据可视化。 1. **Flot 基本概念** - **Canvas**: Flot 利用 `&lt;canvas&gt;` 标签作为图形的画布,这是一个HTML5...

    flot-flot-v0.8.3-2-g958e5fd.zip

    6. **添加交互功能**(可选):如果需要,可以使用 Flot 插件实现交互功能,如图例、工具提示等。 7. **实时更新**(可选):如果数据是动态变化的,可以定期调用 `$.plot()` 更新图表。 通过深入理解和实践,Flot...

    flot-flot-v0.8.3-2-g958e5fd.zip_ flot

    《Flot:JavaScript图表库详解》 Flot是一款基于JavaScript的开源图表绘制库,它以其高效、灵活且功能丰富的特性,在Web开发领域中受到了广泛欢迎。Flot v0.8.3-2-g958e5fd是该库的一个版本,提供了强大的数据可视...

    jquery flot 时间曲线图

    本文将深入探讨jQuery Flot在绘制时间曲线图方面的应用及其相关知识点。 首先,jQuery Flot是一款基于jQuery的开源图表库,它通过简单的API接口,让开发者可以轻松地在网页上绘制各种类型的图表,包括线图、饼图、...

    flot-0.7.zip绘图实例

    Flot是一个基于jQuery的JavaScript库,专门用于在网页上创建高质量的、互动的图表。它以其灵活性、可定制性和高效性而受到开发者的欢迎。在"flot-0.7.zip"这个压缩包中,你将找到使用Flot库进行绘图的各种实例,这些...

    JS绘图Flot如何实现动态可刷新曲线图

    刚刚做的是一个静态的曲线图,只要设置数据,就可以直接显示。下面来做一个根据时间间隔根据新数据一直变的曲线绘图示例。 同样,为了兼容不同浏览器,请一定要引入三个JS文件,否则不保证在IE下的运行。 首先来看...

    flot-0.8.3

    1. **灵活性**:Flot 支持多种图表类型,包括线图、面积图、饼图、散点图和条形图,可以灵活地适应不同的数据展示需求。 2. **性能优化**:考虑到实时数据更新的需求,Flot 设计得非常高效,即使处理大量数据也能...

    flot折线图

    下面我们将深入探讨Flot的基本使用方法、折线图类型、数据格式化、图表选项以及实际应用中的技巧。 1. **Flot基本使用** - 首先,你需要在项目中引入jQuery和Flot的JavaScript库。通常,这可以通过HTML的`&lt;script&gt;...

    flot柱形图

    Flot是一款纯JavaScript的图表库,它允许你在网页上创建出高质量的数据可视化图表,包括柱状图、线图等。柱形图是数据可视化中常用的一种图表类型,它通过长条的高度来表示各类别的数量或者比例关系,适用于比较不同...

    angular-flot, angular.js 和Flot图表库之间的绑定.zip

    angular-flot, angular.js 和Flot图表库之间的绑定 角 flot 包装Flotcharts的一个 Angular 指令。安装这里库是作为 Bower 组件和NPM模块提供的:Bower: bower install angular-flotnpm install

    flot-7.zip_FlashVml_Flot

    Flot 是一个基于 JavaScript 的开源库,专门用于在 Web 页面上绘制高质量的图表和曲线。它利用 HTML5 的 canvas 元素来绘制图形,对于那些不支持 canvas 的浏览器(如旧版的 Internet Explorer),Flot 还提供了一个...

    Algorithm-flot-downsample.zip

    Flot是一个基于jQuery的JavaScript库,用于在网页上绘制复杂的图形,包括折线图、柱状图、饼图等。它支持动态更新数据、自定义轴刻度、鼠标交互等功能,使得数据可视化的实现变得简单易行。然而,当面临大量数据时,...

Global site tag (gtag.js) - Google Analytics