`

highcharts 封装使用

阅读更多

一、引入highcharts的model

 

package com.duowan.gas.common.model;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;


public class HighCharts {

    // 图表在页面上显示的宽度 
    private int width;  
    // 图表在页面上显示的高度 
    private int height;  
    // 图表名称 
    private String title;  
    // 横坐标名称 
    private String xTitle;  
    // 纵坐标名称 
    private String yTitle;  
    // 图表类型(分为七种)    
    private String chartType;
    // x轴字段
    private String x;
	// y轴字段 <字段名,图注>  
	private LinkedHashMap<String,String> yFieldMap;
	// List<bean> 数据集
    private List<? extends Object> dataList;  
    
    public static class Ser {
		private String y;
		private String title;
		public Ser(String y, String title) {
			this.y = y;
			this.title = title;
		}
		public String getY() {
			return y;
		}
		public void setY(String y) {
			this.y = y;
		}
		public String getTitle() {
			return title;
		}
		public void setTitle(String title) {
			this.title = title;
		}
	}
    
    // 把yFieldMap转化成数组形式
    public Object[] getSers() {
    	List<Ser> sers = new ArrayList<Ser>();
    	for(Map.Entry<String, String> entry : yFieldMap.entrySet()){
    		Ser ser = new Ser(entry.getKey(), entry.getValue());
    		sers.add(ser);
    	}
		return sers.toArray();
	}

	// 图表类型
	public static enum ChartType {
		LINE("line", "折线图"),
		COLUMN("column", "纵向条形图"),
		BAR("bar", "横向条形图"),
		PIE("pie", "饼形图"),
		SCATTER("scatter", "散播点图 "),
		AREA("area", "区域折线图  "),
		AREASPLINE("areaspline", "区域曲线图");
		
		private String value;
		private String desc;
		
		private ChartType(String value, String desc) {
			this.value = value;
			this.desc = desc;
		}
		
		public String getValue() {
			return value;
		}
		public void setValue(String value) {
			this.value = value;
		}
		public String getDesc() {
			return desc;
		}
		public void setDesc(String desc) {
			this.desc = desc;
		}
	}
	
    public LinkedHashMap<String, String> getyFieldMap() {
		return yFieldMap;
	}
    
	public void setyFieldMap(LinkedHashMap<String, String> yFieldMap) {
		this.yFieldMap = yFieldMap;
	}
	
	public String getX() {
		return x;
	}

	public void setX(String x) {
		this.x = x;
	}

	public List<? extends Object> getDataList() {
		return dataList;
	}
	
	public void setDataList(List<? extends Object> dataList) {
		this.dataList = dataList;
	}
	
	public int getWidth() {
		return width;
	}

	public void setWidth(int width) {
		this.width = width;
	}


	public int getHeight() {
		return height;
	}

	public void setHeight(int height) {
		this.height = height;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getxTitle() {
		return xTitle;
	}

	public void setxTitle(String xTitle) {
		this.xTitle = xTitle;
	}

	public String getyTitle() {
		return yTitle;
	}

	public void setyTitle(String yTitle) {
		this.yTitle = yTitle;
	}

	public String getChartType() {
		return chartType;
	}
	
	public void setChartType(String chartType) {
		this.chartType = chartType;
	}  

	
	
}

 

二、引入highcharts js文件 (见附件)

 

三、前台展示

    主要调用方法:highchartsUtil.chart(div的ID,后台传回的json数据);

 

<div id="container"></div>

   <script src="/js/highcharts/jquery.min.js"></script>
   <script src="/js/highcharts/highcharts.js"></script>
   <script src="/js/highcharts/modules/exporting.js"></script>
   <script src="/js/highcharts/highchartsUtil.js"></script>

   <script type="text/javascript">

        $(function () {

                highchartsUtil.chart("container",${jsonStr});

         });

   </script>

 

四、后台数据处理

 

假设有一个TestBean,有字段如下: private String date; private double value; private double value2;

 

// 取得的List<bean>数据集
        List<TestBean> listBeans  = xxx;

        // 可选属性
        HighCharts highCharts = new HighCharts();
        highCharts.setTitle("title");
        highCharts.setWidth(900);
        highCharts.setHeight(500);
        highCharts.setxTitle("xTitle");
        highCharts.setyTitle("yTitle");

        // 必填属性
        highCharts.setChartType(HighCharts.ChartType.LINE.getValue()); //不同图表只需要修改这里
        highCharts.setX("date"); // 指定x轴字段
        LinkedHashMap<String,String> yFieldMap = new LinkedHashMap<String,String>(); // y轴的map<y轴的字段,y轴的图注>,多条线只需要多put值
        yFieldMap.put("value", "图注一");
        yFieldMap.put("value2", "图注二");
        highCharts.setyFieldMap(yFieldMap);
        highCharts.setDataList(listBeans);

        ObjectMapper objectMapper = new ObjectMapper();
        String jsonStr = objectMapper.writeValueAsString(highCharts);

        model.put("jsonStr", jsonStr);
        return "index";

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Highcharts封装

    **Highcharts封装** Highcharts是一款基于JavaScript的开源图表库,用于在Web页面上创建各种交互式的图表,如折线图、柱状图、饼图、散点图等。它提供了丰富的自定义选项,使得开发者可以轻松地根据项目需求定制...

    highcharts 半封装工具类

    highcharts 半封装工具类 测试用待完善 Highcharts 是一个用纯JavaScript编写的一个图表库。 Highcharts 能够很简单便捷的在web网站或是web应用程序添加有交互性的图表 Highcharts 免费提供给个人学习、个人网站和非...

    HighCharts工具封装

    HighCharts工具封装是一种技术手段,用于简化和优化使用HighCharts库创建图表的过程。HighCharts是一个强大的JavaScript库,它允许开发者在网页上创建交互式的图表,包括折线图、柱状图、饼图等多种类型的图表。封装...

    基于highcharts封装了一个简单易用的报表统计

    在"基于highcharts封装了一个简单易用的报表统计"这个项目中,开发者通过深入理解和应用Highcharts的功能,构建了一个方便、直观的数据报表工具。下面我们将详细探讨Highcharts的核心特性以及如何进行报表统计的封装...

    highcharts的例子和封装

    在"highcharts的例子和封装"这个主题中,我们可以深入探讨Highcharts的使用方法以及如何进行封装,以便在项目中更高效地应用。 首先,`test1.html`很可能是包含Highcharts图表展示的一个示例网页。在HTML文件中,...

    highcharts封装 刷新 重绘 方法代码

    理解并灵活运用这些方法,可以使你在使用Highcharts时更加高效和便捷。 请注意,以上代码示例没有实际的运行环境,你需要将它们嵌入到你的HTML和JavaScript环境中,配合相应的DOM元素和数据才能正常工作。在实际...

    highcharts封装的myChart.js文件

    实在没法发到博客里了,太长了。提供给大家下载。封装类里有两个方法。

    swift-AAChartKit基于前端图表库Highcharts封装的一组图表绘制控件

    Swift-AAChartKit是一个强大的图表绘制框架,它将流行的前端图表库Highcharts的功能进行了封装,使得在iOS应用中实现各种复杂的图表变得更加便捷。这个库由AAInfotech开发,提供了丰富的图表类型,包括折线图、柱状...

    Highcharts与ExtJs结合使用

    3. **使用ExtJS的Chart组件**: ExtJS提供了一个Chart组件,它是Highcharts的封装,可以直接在ExtJS的应用中使用Highcharts图表。将之前创建的Highcharts配置对象传递给Chart组件。 4. **数据绑定**: 当Store接收到...

    封装highcharts的myChart.js文件

    实在没法发到博客里了,太长了。提供给大家下载。封装类里有两个方法。

    外国人封装的HighCharts.dll

    在.NET环境中,为了方便与C#、VB.NET等语言进行集成,有人封装了`HighCharts.dll`,使得.NET开发者可以更方便地利用HighCharts的功能。 `HighCharts.dll`是这个封装的核心组件,它是一个动态链接库,包含了.NET框架...

    highcharts的java写法(一个封装方法调用即可)

    以下是一个关于如何在Java中使用Highcharts的详细讲解。 首先,你需要了解Highcharts的基本结构。Highcharts的核心是JSON格式的配置对象,这个对象包含了图表的所有设置,如类型、数据、标题、颜色等。在Java中,你...

    Laravel开发-highcharts

    在这个例子中,我们有一个名为"laravel-highcharts-master"的压缩包,这通常包含一个已经封装好的Laravel服务提供者和一些帮助类,使得在Laravel项目中使用Highcharts变得更加简单。通常,我们需要将这个包解压并将...

    highcharts读后台php,生成实时动态图表

    通常,PHP会通过SQL查询与数据库进行交互,比如在`getHighchartData.php`这个文件中,可能包含处理数据库连接、执行查询和封装数据到JSON格式的代码,以便Highcharts能够解析。例如,它可能会使用像`mysqli`或`PDO`...

    封装highcharts的js文件myChart.js

    读完我博客的可以在这里下载封装js文件,实在太多,没法发到博客中。

    vue3-highcharts:Highcharts.js的Vue 3组件包装器

    一个简单,快速的Vue 3组件,用于呈现使用composition API编写的Highcharts.js图表​​。 演示 最低要求 Vue@3.0.0 Highcharts@8.0.0(较旧的版本可能有效,但未经测试) Vue和Highcharts未与模块捆绑在一起,...

    Highcharts本地VS2008导出

    这里,`HighchartsExport`是一个假设存在的类,它封装了Highcharts服务器端的导出接口。实际应用中,你需要根据所使用的Highcharts服务器端组件的具体API来编写这段代码。 为了实现本地导出,你还需要处理用户点击...

    highcharts 导出图片 例子 .net C# Demo 工具类

    这个类通常会封装JavaScript到服务器端的调用,例如通过PhantomJS或者Headless Chrome这样的无头浏览器,因为HighCharts图表是基于浏览器的JavaScript渲染的。PhantomJS可以模拟浏览器环境,执行JavaScript并捕获...

Global site tag (gtag.js) - Google Analytics