当前位置: 代码迷 >> Web前端 >> functioncharts学习(2)MSLine线性图
  详细解决方案

functioncharts学习(2)MSLine线性图

热度:532   发布时间:2013-11-30 22:36:00.0
functioncharts学习(二)MSLine线性图

?

实现需要先下载FusionCharts支持文件,最好使用一个破解版,可以去掉官网打出的一些广告效果;

?

XML数据格式:

?

<?xml version="1.0" encoding="UTF-8"?>
<chart caption="室内外温度监控线性图" yAxisName="温度值" xAxisName="周期"
	bgColor="FF5904,FFFDDD,FFFFFF" bgAlpha="50" bgRatio="40,60,30" bgAngle="180"
	showBorder="1" borderColor="1D8BD1" borderThickness="3" borderAlpha="30"
	numberSuffix="℃">
	<categories>
		<category label="11月份" />
		<category label="11月份" />
		<category label="11月份" />
		<category label="11月份" />
		<category label="11月份" />
		<category label="11月份" />
		<category label="11月份" />
		<category label="11月份" />
		<category label="11月份" />
		<category label="11月份" />
	</categories>
	<dataset seriesName="室内温度" color="1D8BD1" anchorBorderColor="1D8BD1"
		anchorBgColor="F1683C">
		<set value="24" />
		<set value="17" />
		<set value="19" />
		<set value="20" />
		<set value="23" />
		<set value="20" />
		<set value="17" />
		<set value="17" />
		<set value="24" />
		<set value="23" />
	</dataset>
	<dataset seriesName="室外温度" color="F1683C" anchorBorderColor="1D8BD1">
		<set value="15" />
		<set value="7" />
		<set value="12" />
		<set value="5" />
		<set value="15" />
		<set value="5" />
		<set value="5" />
		<set value="15" />
		<set value="9" />
		<set value="11" />
	</dataset>
</chart>

?

?

?

// 创建FunctionCharts MSLine线性图xml模板数据数据
		XmlUtils.buildFunctionChartsMSLineXMLTemplatesData(temperMonitors);

?

?

package cn.sup.cd.common.util;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;

import org.apache.struts2.ServletActionContext;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.XMLOutputter;

import cn.sup.cd.domain.TemperMonitor;

public class XmlUtils {
	/**
	 * 构建FunctionCharts MSLine线性图 XML格式的模板数据
	 * @param list 查询的list数据集合
	 */
	public static void buildFunctionChartsMSLineXMLTemplatesData(List<TemperMonitor> list){
	
		//创建根节点
		Element chart = new Element("chart");
		//为根节点设置属性
		chart.setAttribute("caption","室内外温度监控线性图");
		//X轴名称
		chart.setAttribute("yAxisName", "温度值");
		//y轴名称
		chart.setAttribute("xAxisName", "周期");
		//背景颜色
		chart.setAttribute("bgColor", "FF5904,FFFDDD,FFFFFF");
		//透明度
		chart.setAttribute("bgAlpha", "50");
		//每种颜色渐变的百分比。总的百分比的和必须是100
		chart.setAttribute("bgRatio", "40,60,30");
		//渐变色的填充角度 (角度: 0-360).
		chart.setAttribute("bgAngle", "180");
		//是否显示边框。2D Chart默认为1,3D Chart默认为0.
		chart.setAttribute("showBorder", "1");
		//边框颜色
		chart.setAttribute("borderColor", "1D8BD1");
		//边框的宽度,以像素为单位
		chart.setAttribute("borderThickness", "3");
		//边框的透明度。
		chart.setAttribute("borderAlpha", "30");
		
		chart.setAttribute("numberSuffix", "℃");
		
		
		//将根节点插入到文档中
		Document doc = new Document(chart);
		//获取xml数据存放位置
		String outputPath = ServletActionContext.getServletContext().getRealPath("/");
		
		//
		Element categories = new Element("categories");		
		
		//室内温度数据设置
		Element indoor_temper_dataset = new Element("dataset");
		indoor_temper_dataset.setAttribute("seriesName","室内温度");
		indoor_temper_dataset.setAttribute("color","1D8BD1");
		indoor_temper_dataset.setAttribute("anchorBorderColor","1D8BD1");
		indoor_temper_dataset.setAttribute("anchorBgColor","1D8BD1");
		//室外温度数据设置
		Element outdoor_temper_dataset = new Element("dataset");
		outdoor_temper_dataset.setAttribute("seriesName","室外温度");
		outdoor_temper_dataset.setAttribute("color","F1683C");
		outdoor_temper_dataset.setAttribute("anchorBorderColor","1D8BD1");
		indoor_temper_dataset.setAttribute("anchorBgColor","F1683C");
		
		
		//此处 for 循环可替换成 遍历 数据库表的结果集操作;
		try {
			if (null != list) {
				for (TemperMonitor temper : list) {
					
					Element category = new Element("category");
					Element indoor_temper_set = new Element("set");
					Element outdoor_temper_set = new Element("set");
					
					category.setAttribute("label",temper.getMonitor_cycle());
					//室内温度值设置
					indoor_temper_set.setAttribute("value",String.valueOf(temper.getIndoor_temperature()));
					//室外温度值设置
					outdoor_temper_set.setAttribute("value",String.valueOf(temper.getOutdoor_temperature()));
					
					//给父节点添加子节点;
					categories.addContent(category);
					indoor_temper_dataset.addContent(indoor_temper_set);
					outdoor_temper_dataset.addContent(outdoor_temper_set);
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		//将所有节点添加到 根节点
		chart.addContent(categories);
		chart.addContent(indoor_temper_dataset);
		chart.addContent(outdoor_temper_dataset);
		
		XMLOutputter XMLOut = new XMLOutputter();
		try {
			XMLOut.output(doc, new FileOutputStream(outputPath+"/xmlData/"+"emperMonitorMSLine.xml"));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

?

?

?

<tr>
   <td colspan="5">
		<div class="graphicsMaxDiv">
			<div class="graphicsShow1" id="graphicsShowDataOne">
			</div>
		</div>
    </td>
</tr>

?

?

$(document).ready(function() {
	$("#graphicsShowDataOne").insertFusionCharts( {
		swfUrl : "/js/FusionCharts/MSLine.swf",
		dataSource : "/xmlData/emperMonitorMSLine.xml",
		dataFormat : "xmlurl",
		width : "580",
		height : "400",
		id : "myChartId"
	});
});

?

  相关解决方案