highchart编程
HighCharts-教程+例子
HighCharts-教程+例⼦Highchart简介:Highcharts是⼀款免费开源的纯javascript编写的图表库,能够很简单便捷的在Web⽹站或Web应⽤中添加交互性的图表,Highcharts⽬前⽀持直线图、曲线图、⾯积图、柱状图、饼图、散点图等多达18种不同类型的图表,可以满⾜你对Web图表的任何需求!Highcharts功能强⼤,图表种类多也很漂亮,⾼度⾃定义,兼容性⽐较好。
具体参考:使⽤准备:1.在官⽹上找到下载链接即可,其中有3个下载项,highchart为主要的,后⾯两个,highmaps是主题为地图的⼀些图表。
highstock是主题为股票的⼀些折线图,是⼀些⾏业定制化的⼯具2.使⽤highchart需要两个⽂件⼀个是基础的jquery(jquery建议1.8.2版本)或者prototype等js框架,以及highcharts.js。
可以在线引⽤,但是可能不太稳定,建议本地引⽤。
需要在移动端使⽤的时候,考虑这个。
另外图表导出等⾼级功能,需要额外引⼊exporting.js 等⽂件。
HelloWorld1.创建div容器,图表将在这个容器⾥画出来,需要制定id,style长宽样式需要制定。
<div id="container" style="min-width:800px;height:400px"></div>2.先引⼊jquery.js,最好1.8.2版本;highchart.js,因为后者基于前者,所以顺序不能颠倒。
3.使⽤script包含js代码,记住 type="text/javascript" 需要指定,以免出问题。
4.写代码,代码可以放在$(function(){ });中,也可以放在ajax的回调函数⾥,总之要保证执⾏到。
$('#container').highcharts({ //图表展⽰容器,与div的id保持⼀致chart: {type: 'column' //指定图表的类型,默认是折线图(line)},title: {text: 'My first Highcharts chart' //指定图表标题},xAxis: {categories: ['my', 'first', 'chart'] //指定x轴分组},yAxis: {title: {text: 'something' //指定y轴的标题}},series: [{ //指定数据列name: 'Jane', //数据列名data: [1, 0, 4] //数据}, {name: 'John',data: [5, 7, 3]}]});highchart的代码,都是json形式的,易于理解和开发,数据也可以⽤json来填充,下⾯举个⾃⼰做的例⼦看⼀看。
HighCharts 中文API 文档
horizontal
align
对齐方式。
center
backgroundColor
图例背景色。
null
borderColor
图例边框颜色。
#909090
borderRadius
图例边框角度
5
enabled
是否显示图例
true
floating
fontSize: '16px'}
Subtitle:副标题选项
副标题提供的属性选项与标题title大致相同,可参照上述标题选项,值得一提的是副标题的text选项默认为'',即空的,所以默认情况下副标题不显示。
xAxis:X轴选项
X轴选项用于设置图表X轴相关属性。
参数
描述
默认值
categories
设置X轴分类名称,数组,例如:categories: ['Apples', 'Bananas', 'Oranges']
null
min
X轴最小值(categories为空时),如果为null,则最小值会根据X轴数据自动匹配一个最小值。
array
gridLineColor
网格(竖线)颜色
#C0C0C0
gridLineWidth
网格(竖线)宽度
1
lineColor
基线颜色
#C0D0E0
lineWidth
基线宽度
0
yAxis:Y轴选项
图例内每条内容上边距值
itemStyle
图例内每条内容的样式
itemWidth
highcharts vue用法
一、Highcharts Vue概述Highcharts是一个功能强大的JavaScript图表库,可以实现各种类型的交互式图表展示。
而Vue是一个流行的JavaScript框架,被广泛用于构建用户界面。
将Highcharts和Vue结合在一起可以实现更加灵活和强大的数据可视化应用。
在本篇文章中,我们将探讨Highcharts Vue的用法,帮助读者更好地理解如何在Vue应用中使用Highcharts来创建各种类型的图表。
二、Highcharts Vue安装和配置1. 安装Highcharts Vue在使用Highcharts Vue之前,首先需要安装Highcharts和Vue。
你可以通过npm安装Highcharts Vue的npm包,命令如下:```npm install highcharts-vue```2. 配置Highcharts Vue安装好Highcharts Vue之后,你需要在你的Vue应用中引入Highcharts和Highcharts Vue,并进行相关的配置。
在你的Vue组件中,可以这样引入Highcharts Vue:```javascriptimport HighchartsVue from 'highcharts-vue'e(HighchartsVue)```这样就完成了Highcharts Vue的安装和配置,接下来就可以开始在你的Vue应用中使用Highcharts来创建图表了。
三、Highcharts Vue基本用法1. 在Vue组件中使用Highcharts在你的Vue组件中,你可以通过引入Highcharts Vue来使用Highcharts。
需要在你的模板中定义一个div来承载你要创建的图表,例如:```html<div id="chart"></div>```在你的Vue组件的script中,你可以通过配置Highcharts Vue来创建图表,例如:```javascriptexport default {data() {return {chartOptions: {chart: {type: 'line'},title: {text: '示例图表'},series: [{data: [1, 3, 2, 4]}]}}},template:'<highcharts :options="chartOptions"></highcharts>'}```2. Highcharts Vue参数设置在上述例子中,我们定义了一个简单的折线图表,并设置了图表的标题和数据。
Highcharts基本运用java版
Highcharts基本运用主要讲生成图表和导出图片以myReport项目为例:•先看一下myReport的结构••其中highcharts文件夹包含highchart\Highcharts-2.1.9\js下所有文件;•有了highcharts文件夹的引用生成图表就很简单了:•新建一个js文件report.js以生成柱状图为例,代码如下:/**报表处理**使用介绍:*引用(<head></head>之间):*<script type="text/javascript"src="/myReport/script/report/report.js"></script>*调用(<body></body>之间):*<div id="reportDiv" style="width:100%; height:100%;">*<input type='button' value='生成报表' onclick='mkChar()'/> */document.write(" <scr"+"ipt lanague=\"javascript\"src=\"/myReport/script/report/jquery-1.3.2.min.js\"><\/scri"+"pt>") ;document.write(" <scr"+"ipt lanague=\"javascript\"src=\"/myReport/script/report/highcharts/highcharts.js\"> <\/scri"+"pt>");document.write(" <scr"+"ipt lanague=\"javascript\"src=\"/myReport/script/report/highcharts/modules/exportin g.js\"> <\/scri"+"pt>");//测试报表function mkChar(){chart = new Highcharts.Chart({chart: {renderTo: 'reportDiv',defaultSeriesType: 'column'},title: {text: '主标题'},subtitle: {text: '副标题'},xAxis: {categories: ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月']},yAxis: {min: 0,title: {text: 'y轴计量单位'}},legend: {//图例标签layout: 'vertical',backgroundColor: '#FFFFFF',align: 'left',verticalAlign: 'top',x: 100,//显示位置X偏移量y: 70,floating:true,//相对(统计图)位置,false,浏览器绝对位置shadow: true //是否开启图形显隐,点击图例可显示/隐藏柱体},tooltip: {//鼠标悬浮formatter: function() {return ''+this.x +': '+ this.y +'数量计量单位';}},//柱体设置plotOptions: {column: {pointPadding: 0.2,borderWidth: 0 //柱体边框}},series: [{name: '已售房',data: [{'color':'#F6BD0F','y':11},{'color':'#AFD8F8','y':12},{'color':'#8BBA00','y':13},{'color':'#FF8E46','y':14},{'color':'#008E8E','y':15},{'color':'#D64646','y':16},{'color':'#8E468E','y':17},{'color':'#588526','y':18},{'color':'#B3AA00','y':19},{'color':'#008ED6','y':20},{'color':'#9D080D','y':21},{'color':'#A186BE','y':22}],cursor: 'pointer',//指针point: {events: {click: function() {//点击事件alert(this.y+"计量单位");}}},dataLabels: {//数据标签enabled: true,rotation: 0,//文字方向 -90纵向color: '#FFFFFF',align: 'right',x: -3,y: 15,formatter: function() {return this.y;},style: {font: 'normal 13px Verdana,sans-serif'}}}, {name: '总数',data: [23, 30, 31, 33, 32, 28, 29,26, 22, 50, 33, 29],cursor: 'pointer',//指针point: {events: {click: function() {//点击事件alert(this.y+"计量单位");}}},dataLabels: {//数据标签enabled: true,rotation: 0,//文字方向 -90纵向color: '#FFFFFF',align: 'right',x: -3,y: 15,formatter: function() {return this.y;},style: {font: 'normal 13px Verdana,sans-serif'}}} ]});}••在index.jsp页面引用report.js,调用mkChar()方法;•点击生成报表按钮,生成如下的图生成柱状图表已经实现,此外生成饼图,曲线图也是大同小异:可以参考highchart\Highcharts-2.1.9\index.htm里面列举了很多种图表导出图片功能:此功能实现首先需导入两个实现导出图片功能的jar包:batik-all-1.6.jar和xerces-2.4.0.jar;在report.js中引用highcharts/modules/exporting.js(已经修改)其次在后台ExportServlet.java中实现导出的方法:主要代码如下:protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setCharacterEncoding("UTF-8");request.setCharacterEncoding("UTF-8");// TODO Auto-generated method stubString fileName=request.getParameter("title");String type = request.getParameter("type");String svg = request.getParameter("svg");ServletOutputStreamout=response.getOutputStream();if (null != type && null != svg){svg = svg.replaceAll(":rect", "rect");String ext = "";Transcoder t = null;if (type.equals("image/png")) {ext = "png";t = new PNGTranscoder();} else if (type.equals("image/jpeg")) {ext = "jpg";t = new JPEGTranscoder();} else if (type.equals("image/svg+xml")) {ext = "svg";}response.addHeader("Content-Disposition", "attachment; filename=chart."+ext);response.addHeader("Content-Type", type);if (null != t){TranscoderInput input = new TranscoderInput(newStringReader(svg));TranscoderOutput output = newTranscoderOutput(out);try {t.transcode(input,output);} catch (TranscoderException e){out.print("Problem transcoding stream. See the web logs for more details.");e.printStackTrace();}} else if (ext == "svg"){out.print(svg);} else {out.print("Invalid type: " + type);}} else {response.addHeader("Content-Type","text/html");out.println("Usage:\n\tParameter [svg]: The DOM Element to be converted.\n\tParameter [type]: The destination MIME type for the elment to be transcoded.");}out.flush();out.close();}方法已经写好,在哪里调用了?这时我们需要打开项目中文件夹highcharts/modules/exporting.js在里面关注方法// Add the export related optionsdefaultOptions.exporting = {//enabled: true,//filename: 'chart',type: 'image/png',url: '/myReport/ExportServlet',width: 800,enableImages: false,buttons: {exportButton: {//enabled: true,symbol: 'exportIcon',x: -10,symbolFill: '#A8BF77',hoverSymbolFill: '#768F3E',_id: 'exportButton',_titleKey: 'exportButtonTitle',menuItems: [{textKey: 'downloadPNG',onclick: function () {this.exportChart();}}, {textKey: 'downloadJPEG',onclick: function () {this.exportChart({type: 'image/jpeg'});}}]},printButton: {//enabled: true,symbol: 'printIcon',x: -36,symbolFill: '#B5C9DF',hoverSymbolFill: '#779ABF',_id: 'printButton',_titleKey: 'printButtonTitle',onclick: function () {this.print();}}}};高亮部分为导出调用的方法(可以根据自己需求指定),也就是刚才在servlet 中写好的方法;最后一步:在web.xml中配置映射servlet:<servlet><description>This is the description of my J2EE component</description><display-name>This is the display name of my J2EE component</display-name><servlet-name>ExportServlet</servlet-name><servlet-class>servlet.ExportServlet</servlet-class> </servlet><servlet-mapping><servlet-name>ExportServlet</servlet-name><url-pattern>/ExportServlet</url-pattern></servlet-mapping>这时看到刚才生成的图表,在右上方有两个按钮:点击选中导出就可以把图表导出成图片。
highcharts本地导出图片 服务端代码
所需jar包先要在exporting.js中修改导出图片的url是本地的服务器地址String type = getPara("type");//getRequest().getParameter("type");String svg =getPara("svg");// getRequest().getParameter("svg");String filename = getPara("filename");//getRequest().getParameter("filename");ServletOutputStream out1 = null;try {//getRequest().setCharacterEncoding("utf-8");System.out.println(type);System.out.println(svg);System.out.println(filename);filename = filename==null?"chart":filename;out1 = getResponse().getOutputStream();if (null != type && null != svg) {svg = svg.replaceAll(":rect", "rect");String ext = "";Transcoder t = null;if (type.equals("image/png")) {ext = "png";t = new PNGTranscoder();} else if (type.equals("image/jpeg")) {ext = "jpg";t = new JPEGTranscoder();} else if(type.equals("image/svg+xml")) {ext = "svg";}else if(type.equals("application/pdf")){t = new PDFTranscoder();ext = "pdf";}getResponse().addHeader("Content-Disposition", "attachment; filename="+ filename + "."+ext);getResponse().addHeader("Content-Type", type);if (null != t) {TranscoderInput input = new TranscoderInput(new StringReader(svg));TranscoderOutput output = new TranscoderOutput(out1);try {t.transcode(input, output);} catch (TranscoderException e) {out1.print("Problem transcoding stream. See the web logs for more details.");e.printStackTrace();}} else if (ext.equals("svg")) {// out.print(svg);OutputStreamWriter writer = new OutputStreamWriter(out1, "UTF-8");writer.append(svg);writer.flush();writer.close();} /*elseout.print("Invalid type: " + type);*/} else {//getResponse().addHeader("Content-Type", "text/html");// out.println("Usage:\n\tParameter [svg]: The DOM Element to be converted." +// "\n\tParameter [type]: The destination MIME type for the elment to be transcoded.");}} catch (Exception e) {e.printStackTrace();}finally{try {out1.flush();getResponse().flushBuffer();out1.close();} catch (Exception e2) {}}。
highcharts-图表导出到word 代码
highcharts-图表导出到word 代码1、需要的maven包大概是这些,但是我也不太确切,这个应该是最大量<dependency><groupId>com.lowagie</groupId><artifactId>itext-rtf</artifactId><version>2.1.7</version></dependency><dependency><groupId>com.lowagie</groupId><artifactId>itext</artifactId><version>2.1.7</version></dependency><dependency><groupId>batik</groupId><artifactId>batik-transcoder</artifactId><version>1.6-1</version><exclusions><exclusion><artifactId>fop</artifactId><groupId>fop</groupId></exclusion></exclusions></dependency><dependency><groupId>xml-apis</groupId><artifactId>xml-apis-ext</artifactId><version>1.3.04</version></dependency><dependency><groupId>xerces</groupId><artifactId>xercesImpl</artifactId><version>2.10.0</version></dependency>----------------------------------------------------------------------------------------------------------------------------------------------------2、Extjs部分sendRecord数组的部分内容大概是[{companyId:1035,companyName:'上清寺局',svg :'这里是highchart的svg字符串'},{........................},{........................}];highchart的svg字符串'可以通过生成highcharts实例获得:var chart = new Highcharts.Chart({});varsvg=chart.getSVG();var form = document.getElementById('exportForm');Ext.get('autoReportDtos').set({value : '{autoReportDtos:' + Ext.encode(sendRecord) + '}'});form.action = '../../AutoReportServlet';form.target = '#';form.submit();说明:value : '{autoReportDtos:' + Ext.encode(sendRecord) + '}' 因为要传递中文所以要Ext.encode();js的encode()效果也应该是一样的value值的格式,是因为组织内部使用的json解析工具需要这样的字符串格式{autoReportDtos:[{............},{..................},{..................}}List<AutoReportDto>autoReportDtos = JsonParseUtil.jsonStrToList("autoReportDtos", autoReportDtosStr, AutoReportDto.class);会解析为List<AutoReportDto>----------------------------------------------------------------------------------------------------------------------------------------------------3、servlet部分package com.cqcis.mms.app.servlet.sys;importjava.awt.Color;import java.io.StringReader;import .URLEncoder;import java.text.SimpleDateFormat;import java.util.Date;import java.util.HashMap;import java.util.List;import java.util.Map;importjavax.servlet.ServletOutputStream;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;importorg.apache.batik.transcoder.Transcoder;import org.apache.batik.transcoder.TranscoderInput;import org.apache.batik.transcoder.TranscoderOutput;import org.apache.batik.transcoder.image.JPEGTranscoder;import org.springframework.context.ApplicationContext;import org.springframework.web.context.support.WebApplicationContextUtils;import com.cqcis.mms.app.utils.JsonParseUtil;import com.cqcis.mms.base.dto.sys.AutoReportDto;import com.cqcis.mms.base.dto.sys.InstallMoveFixReportDto;import com.cqcis.mms.base.dto.sys.InstallMoveOrderReportDto;import com.cqcis.mms.base.dto.sys.MonthCompletedConditionDto;import com.cqcis.mms.base.dto.sys.TimeoutWarningOrderDto;import com.cqcis.mms.base.export.service.sys.ReportService;import com.lowagie.text.Cell;import com.lowagie.text.Document;import com.lowagie.text.Element;import com.lowagie.text.Font;import com.lowagie.text.Image;import com.lowagie.text.PageSize;import com.lowagie.text.Paragraph;import com.lowagie.text.Rectangle;import com.lowagie.text.Table;import com.lowagie.text.rtf.RtfWriter2;import com.lowagie.text.rtf.style.RtfFont;import com.sun.xml.messaging.saaj.util.ByteOutputStream;public class AutoReportServlet extends HttpServlet {private static final long serialVersionUID = 734049956945955588L;protected void doGet(HttpServletRequest request, HttpServletResponse response) {doPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) { // response.setCharacterEncoding("UTF-8");// request.setCharacterEncoding("UTF-8");try {response.setContentType("text/html;charset=UTF-8");String autoReportDtosStr = request.getParameter("autoReportDtos");autoReportDtosStr = new String(autoReportDtosStr.getBytes("iso-8859-1"), "utf-8"); List<AutoReportDto>autoReportDtos = JsonParseUtil.jsonStrToList("autoReportDtos", autoReportDtosStr, AutoReportDto.class);ByteOutputStreambos = new ByteOutputStream();ApplicationContextapplicationContext =WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());ReportServicereportService = (ReportService)applicationContext.getBean("reportService");List<InstallMoveFixReportDto>installMoveFixReportDtos;List<InstallMoveOrderReportDto>installMoveOrderReportDtos;List<MonthCompletedConditionDto>monthCompletedConditionDtos;List<TimeoutWarningOrderDto>timeoutWarningOrderDtos;Map<String, String> filter = new HashMap<String, String>();SimpleDateFormatsdf = new SimpleDateFormat("yyyyMMddHHmmss");/** 创建Document对象(word文档)author:yyli Sep 15, 2010 */Rectangle rectPageSize = new Rectangle(PageSize.A4);rectPageSize = rectPageSize.rotate();// 创建word文档,并设置纸张的大小Document doc = new Document(PageSize.A4);String fileName = autoReportDtos.get(0).getCompanyName()+"分析报告" +sdf.format(new Date())+ ".doc";/** 建立一个书写器与document对象关联,通过书写器可以将文档写入到输出流中author:yyli Sep 15, 2010 */response.addHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName, "UTF-8"));response.addHeader("Content-Type", "application/rtf");ServletOutputStream out = response.getOutputStream();// FileOutputStream out = new FileOutputStream(new File("E:/1.doc"));RtfWriter2.getInstance(doc, out);doc.open();/** 第一行(标题)author:yyli Sep 15, 2010 *//** 标题字体author:yyli Sep 15, 2010 */RtfFonttitleFont = new RtfFont("仿宋_GB2312", 18, Font.BOLD, Color.BLACK);/** 正文字体author:yyli Sep 15, 2010 */RtfFontcontextFont = new RtfFont("仿宋_GB2312", 12, Font.NORMAL, Color.BLACK); String titleString = autoReportDtos.get(0).getCompanyName() + "分公司专项情况分析"; Paragraph title = new Paragraph(titleString);// 设置标题格式对其方式title.setAlignment(Element.ALIGN_CENTER);title.setFont(titleFont);doc.add(title);TranscoderInput input;TranscoderOutputtoutput;Transcoder t = new JPEGTranscoder();for (AutoReportDtodto : autoReportDtos) {int type = dto.getType();byte[] bytesImage;Table table;switch (type) {case 1:filter.put("companyId", dto.getCompanyId().toString());filter.put("sDate", dto.getsDate());filter.put("eDate", dto.geteDate());filter.put("level", "2");installMoveFixReportDtos = reportService.findInstallMoveFixReport(filter);/** 表格设置author:yyli Sep 15, 2010 */table = new Table(4, installMoveFixReportDtos.size() + 1);/** 设置每列所占比例author:yyli Sep 15, 2010 */table.setWidths(new int[]{ 55, 15, 15, 15 });/** 表格所占页面宽度author:yyli Sep 15, 2010 */table.setWidth(100);/** 居中显示author:yyli Sep 15, 2010 */table.setAlignment(Element.ALIGN_CENTER);/** 自动填满author:yyli Sep 15, 2010 */table.setAutoFillEmptyCells(true);table.setBorderWidth(5); // 边框宽度table.setBorderColor(new Color(0, 125, 255)); // 边框颜色table.setPadding(12);// 衬距,看效果就知道什么意思了table.setSpacing(0);// 即单元格之间的间距table.setBorder(5);// 边框// /** 第二行(正文)author:yyli Sep 15, 2010 */// String contextString = "登记人:" + "admin " + "登记时间:" + new Date().toLocaleString();// Paragraph context = new Paragraph(contextString);// // 正文格式对齐方式// context.setAlignment(Element.ALIGN_RIGHT);// context.setFont(contextFont);// // 与上一段落(标题)的行距// context.setSpacingBefore(10);// // 设置第一行空的列数(缩进)// // context.setFirstLineIndent(20);// doc.add(context);String contextString = dto.getReportTitle() + dto.getReportName();Paragraph context = new Paragraph(contextString);// 正文格式对齐方式context.setAlignment(Element.ALIGN_CENTER);context.setFont(contextFont);// 与上一段落(标题)的行距context.setSpacingBefore(10);// 设置第一行空的列数(缩进)// context.setFirstLineIndent(20);doc.add(context);Cell cell = null;cell = new Cell("营维部");cell.setHeader(true);cell.setVerticalAlignment(Element.ALIGN_CENTER);cell.setHorizontalAlignment(Element.ALIGN_LEFT);table.addCell(cell);cell = new Cell("装移机投诉率");cell.setHeader(true);cell.setVerticalAlignment(Element.ALIGN_CENTER);cell.setHorizontalAlignment(Element.ALIGN_LEFT);table.addCell(cell);cell = new Cell("催装率");cell.setHeader(true);cell.setVerticalAlignment(Element.ALIGN_CENTER);cell.setHorizontalAlignment(Element.ALIGN_LEFT);table.addCell(cell);cell = new Cell("装机一次性通过率");cell.setHeader(true);cell.setVerticalAlignment(Element.ALIGN_CENTER);cell.setHorizontalAlignment(Element.ALIGN_LEFT);table.addCell(cell);for (InstallMoveFixReportDtoimfDto : installMoveFixReportDtos) { cell = new Cell(imfDto.getUnitname());cell.setVerticalAlignment(Element.ALIGN_CENTER);cell.setHorizontalAlignment(Element.ALIGN_LEFT);table.addCell(cell);cell = new Cell(imfDto.getInstallMoveComplaintRatio());cell.setVerticalAlignment(Element.ALIGN_CENTER);cell.setHorizontalAlignment(Element.ALIGN_LEFT);table.addCell(cell);cell = new Cell(imfDto.getHastenInstallRatio());cell.setVerticalAlignment(Element.ALIGN_CENTER);cell.setHorizontalAlignment(Element.ALIGN_LEFT);table.addCell(cell);cell = new Cell(imfDto.getInstallOnePassRatio());cell.setVerticalAlignment(Element.ALIGN_CENTER);cell.setHorizontalAlignment(Element.ALIGN_LEFT);table.addCell(cell);}doc.add(table);context = new Paragraph();// 正文格式对齐方式context.setAlignment(Element.ALIGN_LEFT);// 与上一段落(标题)的行距context.setSpacingBefore(10);// 设置第一行空的列数(缩进)// context.setFirstLineIndent(20);doc.add(context);/******************************* 图片*******************************************/ input = new TranscoderInput(new StringReader(dto.getSvg()));toutput = new TranscoderOutput(bos);t.transcode(input, toutput);bytesImage = bos.getBytes();Image image = Image.getInstance(bytesImage);image.setAlignment(Element.ALIGN_CENTER);image.scalePercent(50);doc.add(image);bos.reset();context = new Paragraph("数据分析:" + dto.getDataAnalysis());context.setAlignment(Element.ALIGN_LEFT);context.setFont(contextFont);context.setSpacingBefore(10);doc.add(context);context = new Paragraph("处理建议:" + dto.getDealSuggest());context.setAlignment(Element.ALIGN_LEFT);context.setFont(contextFont);context.setSpacingBefore(10);doc.add(context);break;case 2:break;case 3:break;case 4:break;}}doc.close();bos.close();out.close();} catch (Exception e) { e.printStackTrace(); }}}。
Highcharts使用说明
版本信息1 EXT应用1.1标签说明1.2使用示例<highcharts id="sample.highcharts.line.one" shape="line" xcol="x"ycol="y" scol="s" width="800" height="400"> <property><key name="formatCol" value="format"/><key name="showBorder" value="true"/><key name="legendBgColor" value="#FFFFFF"/></property><query><template><![CDATA[select *from(select t.mark_area,a.mark_area_desc as "x",sum(t.acct_cnt) as "y",'营销单元' as "s",'000.00' formatfrom ${DM_USER}.dm_c_nuq_2g_zero_cell t,${DSS_USER}.code_mark_area awhere a.mark_area = t.mark_areaand t.area_no = '571'group by t.mark_area, a.mark_area_descorder by t.mark_area)where rownum < 10]]></template></query></highcharts>1.3图形示例线性图:柱形图:多轴柱形图:回归线图:复合图形:时间序列图:饼图:面积图:2JSP应用2.1引入JavaScript<script type="text/javascript"src="${pageContext.request.contextPath}/resources/highcharts/jque ry.min.js"></script><script> jQuery.noConflict();</script><script type="text/javascript"src="${pageContext.request.contextPath}/resources/highcharts/high charts.src.js"></script><!--[if IE]><script type="text/javascript"src="${pageContext.request.contextPath}/resources/highcharts/exca piled.js"></script><![endif]-->2.2引入标签<%@taglib prefix="hc"uri="/bonc-highcharts-tags"%>2.3标签说明2.4使用示例先引入jar包:Highcharts.jar<hc:chart shape="line"id="container"scol="s"data="kpiList"ycol="y" xcol="ACCT_DATE"height="400"width="800"formatCol="format"unitCol="unit"action="showChartJS(xvalue,svalue,yvalue)"/>符号图:<hc:chart shape="symbols" id="container" scol="S" data="kpiList" ycol="Y" xcol="X" xxcol="XX" height="400"width="800" showBorder="false" showLegend="false" xcolKpiInfo="使用价值/元/##0.00" ycolKpiInfo="用户数/户/##0"locationValue="10.87,50.04" dataLabelsEnabled="true" labelStep="6" xaxisLabelsRotation="-15"/>2.5数据示例2.6图形示例同1.3图形示例新增加的图形————————————————————》组合图2:<hc:chart shape="combo2" id="containerDay01" chartTypeCol="TYPECOL" data="leftChartList" xcol="X" ycol="Y" scol="S" height="250"width="500" formatCol="FORMAT" unitCol="UNIT" showBorder="false" margin = "40, 40, 40, 70" legendPosition="left: 'auto',bottom: 'auto',right: '10px',top: '5px'" xaxisLabelsRotation="-45"/>散点图:<hc:chart shape="scatter" id="container" scol="DEPTNAME"data="ChartList" ycol="YKZB" xcol="YK_USER" height="400"width="1000" showBorder="true" showLegend="false"xcolKpiInfo="疑似养卡用户数/户/0" ycolKpiInfo="疑似养卡用户数占网上用户比例/%/0.00%"locationValue="750,0.2" dataLabelsEnabled="true" />趋势分布图:<hc:chart shape="symbols" id="container" scol="S" data="chartList" ycol="Y" xcol="X" xxcol="XX" height="400"width="980" showBorder="false" showLegend="false" xcolKpiInfo="使用价值/元/" ycolKpiInfo="用户数/户/##0"locationValue="10.87,50.04" dataLabelsEnabled="true"xaxisLabelsRotation="-15" labelStep="6"/>。
Highcharts中文使用指南
•前言(Preface)•安装(Installation)•如何设置参数(How to set up the options)•预处理参数(Preprocess the options)•活动图(Live charts)<script src="/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script><script src="/js/highcharts.js" type="text/javascript"></script>Highcharts(Highstock)已经内置了jQuery适配器(adapter)(注:可能是jQuery框架最流行的缘故),但是并没有内置MooTool等其他javascript框架的适配器(adapter)。
因此,当我们使用MooTool等其他JS框架时,需要单独引用适配器(adapter)脚本文件。
如下:<scriptsrc="https:///ajax/libs/mootools/1.3.0/mootools-yui-compr essed.js" type="text/javascript"></script><script src="/js/adapters/mootools-adapter.js" type="text/javascript"></script> <script src="/js/highcharts.js" type="text/javascript"></script>提示:安装Highstock过程与上述相同,除了JavaScript文件名称是highstock.js而不是highcharts.js。
highcharts--基本使用
Highcharts 是一个使用javascript 脚本来生成图表的工具,和jfreechart 作用类似,都用来生成各种图表,并支持图片的导出和打印。
从官网 上下载的压缩表中的example中有各种图表的例子。
要编写生成图表的例子建议从文件名后带basic 的文件看起,看到例子后你会发现,highcharts使用起来时非常简单的,我们要做的仅仅是把数据组织好,让在页面onload时把数据设置到组件(Highcharts.Chart)中即可。
一、改改自带的例子先来个例子:第一步:下载Highcharts-2.1.3.zip 包和jquery-min-1.4.2.js以下两个文件的下载地址:/download/ajax/libs/jquery/1.4.2/jquery.min.js第二步:创建一个html文件在文件的head标签部分,加入对相关js文件的引入:<script type="text/javascript" src="/ajax/libs/jquery/1.4.2/jquery.min.js"></script> Highcharts的核心文件<script type="text/javascript" src="../js/highcharts.js"></script>处理导出图片功能的js文件<script type="text/javascript" src="../js/modules/exporting.js"></script>第三步:编写相关js代码在上面的导入js文件代码后继续加入以下代码:<!-- 2. Add the JavaScript to initialize the chart on document ready --><script type="text/javascript">var chart;$(document).ready(function() {chart = new Highcharts.Chart({chart: {renderTo: 'container',defaultSeriesType: 'line',marginRight: 130,marginBottom: 25},title: {text: 'Monthly A verage Temperature',x: -20 //center},subtitle: {text: 'Source: ',x: -20},xAxis: {categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun','Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']},yAxis: {title: {text: 'Temperature (°C)'},plotLines: [{value: 0,width: 1,color: '#808080'}]},tooltip: {formatter: function() {return '<b>'+ +'</b><br/>'+this.x +': '+ this.y +'°C';}},legend: {layout: 'vertical',align: 'right',verticalAlign: 'top',x: -10,y: 100,borderWidth: 0},series: [{name: 'Tokyo',data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6] }, {name: 'New Y ork',data: [-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5] }, {name: 'Berlin',data: [-0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0] }, {name: 'London',data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8] }]});});</script>第四步:准备存放图片的容器在<body> 标签中加入:<div id="container" style="width: 800px; height: 400px; margin: 0 auto"></div>运行下试试。
C#趋势图(highcharts插件)
C#趋势图(highcharts插件)<!--图表效果展现--><div class="TUI-layout-center" style="overflow: auto;" id="appriseContent"><div class="ui-layout-center"><div id="listDiv" style="overflow: auto;" class="TUI-content TUI-h100"><!-- class="master_table_content_bg"--><div runat="server" id="divData" class="TUI-content TUI-h100 TUI-of-auto" style="overflow: auto;"></div></div></div><div class="ui-layout-east" id="divEast"><div id="chart_combo" class="chart_combo" style="margin-top:100px;"></div></div></div><!--图表效果展现-->View Code<script type="text/javascript">var ajax = Topevery.DUM.Web.AjaxFunction;$(document).ready(function () {TUILayout("form");createEastLayout();$("td").css("text-align", "center");})function createEastLayout() {var myLayout = $("#appriseContent").layout({fxName: "slide" //fxName 窗体隐藏显⽰的动画效果, fxSpeed: "slow" //fxSpeed 动画效果的显⽰时间/速度, maskIframesOnResize: false//maskIframesOnResize 页⾯中存在Iframe对象时,设为true, closable: false//closable 是否允许隐藏打开窗体,true为允许, east__size: "100%" //west__size 为调整西边窗体的宽度, resizable: false//resizable 是否允许调整窗体的⾼/宽, true为允许, slidable: false//slidable 是否允许窗体隐藏后可以滑动预览, north__fxName: "slide" //north__fxName 北边窗体隐藏显⽰的动画效果, south__fxName: "slide" //south__fxName 南边窗体隐藏显⽰的动画效果, spacing_closed: 7 //spacing_closed 隐藏后的间隔栏⾼宽, spacing_open: 7 //spacing_open 显⽰后的间隔栏⾼宽, initClosed: false//initClosed 窗体创建后默认隐藏所有窗体, resizerTip: "调整内容宽度" //resizerTip ⿏标移上调整窗体栏所显⽰的⽂字提醒, resizerDragOpacity: "0.8" //resizerDragOpacity ⿏标调整窗体栏显⽰显⽰的透明度效果, sliderTip: "展开" //sliderTip ⿏标移上滑动隐藏窗体栏所显⽰的⽂字提醒, togglerTip_open: "隐藏" //togglerTip_open ⿏标移上打开的窗体按钮⽂字提醒, togglerTip_closed: "展开" //togglerTip_closed ⿏标移上关闭的窗体按钮⽂字提醒, onopen_end: function () {}, onresize_end: function () {}/* , center__showOverflowOnHover: true 被Aaron注释,firefox下导致下拉框⽆法正常使⽤。
图表插件Highcharts的动态化赋值,实现图表数据的动态化设置显示
图表插件Highcharts的动态化赋值,实现图表数据的动态化设置显⽰在很早之前就介绍过图表插件Highcharts的使⽤了,在2014年的随笔《》,这⾥基本上都介绍的⽐较完整,基本的设置也没有太⼤的差异,本篇介绍的是基于Bootstrap开发框架的界⾯处理,以及对图表插件Highcharts的其他模块,如柱状图,线图等其他样式的信息进⾏动态设置,以期达到利⽤数据库的数据,⽅便动态设置显⽰出来。
1、Bootstrap框架图标的展⽰饼图的数据展⽰界⾯效果如下所⽰柱状图以及其他曲线图展⽰效果如下所⽰。
使⽤这些图表功能强,我们⼀般需要在页⾯⾥⾯引⼊对应的JS+CSS2、使⽤脚本动态设置图表的数据默认的案例,这些数据都是直接绑定在⾥⾯的,有时候我们需要动态设置,那么需要分析好对应的数据属性,以及设置的API,才能正常进⾏显⽰。
以饼图为例,我们需要分析它的数据结构,⼀般是Series⾥⾯的Data数据格式,不同的图表样式需要的数据结构不太⼀样,对于图表⽽已,它的数据格式如下所⽰。
另外也可以使⽤key、Value⽅式的定义格式,如下数据所⽰。
那么,有了这些了解,我们就可以通过Ajax⽅式,动态从数据库⾥⾯获取数据,并绑定在界⾯上显⽰即可。
⾸先我们定义好界⾯上的⼀个图表展⽰控件DIV层,如下代码所⽰。
<div class="tab-char" id="container1" style="height: 300px;max-width:500px"></div>然后通过JS动态创建对应的图表对象,并设置图表的数据即可。
var chart1 = new Highcharts.Chart({chart: {renderTo: "container1",plotBackgroundColor: null,plotBorderWidth: null,plotShadow: false,},title: {text: '集团分⼦公司⼈员组成'},tooltip: {pointFormat: '{}: <b>{point.y}</b>'},plotOptions: {pie: {allowPointSelect: true,cursor: 'pointer',dataLabels: {enabled: true,format: '<b>{}</b>: {point.percentage:.1f} %',style: {color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'}},//showInLegend: trueseries: [{type: 'pie',name: '⼈员数量',data: []}]});动态构建数据是通过Ajax⽅式实现的,如下所⽰。
vue3 highcharts 案例
Vue3 Highcharts 案例一、介绍1.1 Vue3概述Vue.js 是一套用于构建用户界面的渐进式框架。
Vue 的核心是一个响应式的数据绑定系统,Vue 采用基于组件的架构,可以快速、高效地构建大型单页面应用。
Vue3 是 Vue.js 的最新版本,经过全面升级,性能提升明显,同时增加了许多新的特性和改进。
1.2 Highcharts概述Highcharts 是一款功能强大且灵活的 JavaScript 图表库,可以轻松地创建各种类型的交互式图表和图形。
Highcharts 提供了丰富的 API 接口,使得用户能够自定义各种图表样式和行为。
1.3 Vue3与Highcharts的搭配Vue3 和 Highcharts 是两款优秀的前端开发工具,它们在项目中的搭配使用可以为用户提供更加优秀的用户界面和数据展示效果。
通过Vue3 的组件化开发模式,结合 Highcharts 丰富的图表功能,可以快速地创建出各种精美的数据可视化界面。
二、案例分析2.1 案例需求假设我们有一个包含大量数据的上线系统,需要向用户展示数据的变化趋势和关联关系。
我们希望使用 Vue3 和 Highcharts 将这些数据以直观的图表形式展示出来,以便用户更好地理解和分析数据。
2.2 技术选择我们决定使用 Vue3 来构建整个前端项目,结合 Highcharts 来实现数据可视化。
Vue3 的组件化开发模式可以让我们更加灵活地组织和管理各个图表组件,而 Highcharts 丰富的图表功能则可以满足我们对于数据展示的各种需求。
2.3 实现步骤第一步,我们会使用 Vue3 来搭建整个项目的框架,构建主要的页面结构和数据绑定逻辑。
第二步,我们将引入 Highcharts 库,并根据实际需求创建各种图表组件,例如折线图、柱状图、饼状图等。
第三步,我们会通过 Vue3 的数据响应机制,将后端传来的数据动态地绑定到各个图表组件中,并实现数据的实时更新和交互。
Highcharts构建分组分类坐标轴
Highcharts构建分组分类坐标轴
Highcharts构建分组分类坐标轴
分组分类坐标轴是将坐标轴的类别标签进⾏进⼀步分组,从⽽形成双层、多层结构。
这样更利于数据分组展现。
实现分组分类坐标轴须要借助第三⽅插件Grouped-Categories实现。
引⼊该插件后。
⽤户就能够使⽤categories构建分组分类标签。
语法形式例如以下:
categories:[{
name:String,
categories:CategoriesObject
}]
当中,參数String指定分组名称,该名称会作为⼀个标签显⽰在坐标轴上。
參数CategoriesObject指定下级分组形式。
它能够是另外⼀个分组分类对象,也能够是⼀个类型数据。
设置分组后。
⽤户还能够针对每⼀个层次标签单独设置样式。
这时须要使⽤该插件添加的配置项groupedOptions。
其语法形式例如以下:labels:{
groupedOptions:[{
//第⼀层的labels各类配置项
},{
//第⼆层的labels各类配置项
},{
//第三层的labels各类配置项
}]
}
效果例如以下:
分组分类坐标轴
PS:该内容已经增加《⽹页图表Highcharts实践教程基础篇》v1.2.3中。
Javascripthighcharts饼图显示数量和百分比实例代码
Javascripthighcharts饼图显⽰数量和百分⽐实例代码Javascript highcharts 饼图显⽰数量和百分⽐实例代码最近公司项⽬需求有这样⼀个功能模块,highcharts 饼图显⽰数量和百分⽐,由于本⼈刚⼊门,看到这个需求不会写,于是就上⽹搜下相关资料,觉得⼀篇还不错记录下。
<div class="piecleft" id="chart" style="height:350px; width: 350px;"></div><script type="text/javascript" charset="utf-8">var chart;$(document).ready(function() {chart = new Highcharts.Chart({chart: {renderTo: 'chart'},title: {text: '版本分布分析'},plotArea: {shadow: null,borderWidth: null,backgroundColor: null},tooltip: {formatter: function() {return '<b>'+ +'</b>: '+ Highcharts.numberFormat(this.percentage, 1) +'% ('+Highcharts.numberFormat(this.y, 0, ',') +' 个)';}},plotOptions: {pie: {allowPointSelect: true,cursor: 'pointer',dataLabels: {enabled: true,formatter: function() {if (this.percentage > 4) return ;},color: 'white',style: {font: '13px Trebuchet MS, Verdana, sans-serif'}}}},legend: {backgroundColor: '#FFFFFF',x: 0,y: -30},credits: {enabled: false},series: [{type: 'pie',name: 'Browser share',data: [['1.1',3617],['1.2.1',3436],['1.0',416],['1.3',2],['1.2',1],['新增对⽐',5000]]}]});});</script>感谢阅读,希望能帮助到⼤家,谢谢⼤家对本站的⽀持!。
highchart的tooltip使用方法
highchart的tooltip使用方法Highcharts的Tooltip使用方法1. 概述Highcharts是一个用于生成交互式图表的JavaScript库,而Tooltip则是其中一个重要的功能之一。
Tooltip用于显示数据点的详细信息,帮助用户分析和理解图表中的数据。
下面将详细介绍Highcharts中Tooltip的使用方法。
2. 基本使用方法使用Highcharts中的Tooltip非常简单,只需要在图表的配置项中添加tooltip对象即可。
具体代码如下:tooltip: {enabled: true,formatter: function() {return '数据点的信息';}}以上代码中,通过设置enabled为true来启用Tooltip功能,并通过formatter函数来设置要显示的信息。
在formatter函数中,可以自定义要展示的信息内容,例如数据点的数值、类别等。
3. 更多定制化选项除了基本的使用方法,Highcharts的Tooltip还提供了丰富的定制化选项,可以满足不同需求。
以下是一些常用的定制化选项:格式化数据可以使用formatter函数来格式化要显示的数据,例如:tooltip: {formatter: function() {return 'x值:' + + '<br/>y值:' + ;}}以上代码中,使用获取x轴的值,获取y轴的值,并通过字符串拼接的方式显示在Tooltip中。
同时,通过标签实现换行。
自定义样式可以通过样式选项来定制Tooltip的样式,例如背景色、边框等。
具体代码如下:tooltip: {backgroundColor: 'rgba(0, 0, 0, )',borderWidth: 0,style: {color: '#FFF'}}以上代码中,设置了Tooltip的背景色为半透明黑色,边框宽度为0,文本颜色为白色。
vue+highcharts实现3D饼图效果
vue+highcharts实现3D饼图效果本⽂实例为⼤家分享了vue+highcharts实现3D饼图效果的具体代码,供⼤家参考,具体内容如下这是最终效果<template><div class="big-box"><div class="com-container" ref="container" style="width:380px;height:300px;"></div><div class="tulibox"><div v-for="(item,index) in peiData" :key="index" class="tuliboxitem"><span class="name">{{}}</span> <span class="value">{{item.y}}%</span></div></div></div></template><script>import HighCharts from 'highcharts'export default {props: {},data () {return {peiData: [{ name: '输电', y: 28, h: 60 },{ name: '变电', y: 20, h: 20 },{ name: '配电', y: 10, h: 32 },{ name: '新业务', y: 6, h: 45 }]}},computed: {},updated () {},created () {},mounted () {this.initChart()const that = thiswindow.onresize = function () { that.initChart() }},methods: {initChart () {// 修改3d饼图绘制过程const each = HighCharts.eachconst round = Math.roundconst cos = Math.cosconst sin = Math.sinconst deg2rad = Math.deg2radHighCharts.wrap(HighCharts.seriesTypes.pie.prototype, 'translate', function (proceed) {proceed.apply(this, [].slice.call(arguments, 1))// Do not do this if the chart is not 3Dif (!this.chart.is3d()) {return}const series = thisconst chart = series.chartconst options = chart.optionsconst seriesOptions = series.optionsconst depth = seriesOptions.depth || 0const options3d = options.chart.options3dconst alpha = options3d.alphaconst beta = options3d.betavar z = seriesOptions.stacking ? (seriesOptions.stack || 0) * depth : series._i * depthz += depth / 2if (seriesOptions.grouping !== false) {z = 0}each(series.data, function (point) {const shapeArgs = point.shapeArgsvar anglepoint.shapeType = 'arc3d'var ran = point.options.hshapeArgs.z = zshapeArgs.depth = depth * 0.75 + ranshapeArgs.alpha = alphashapeArgs.beta = betashapeArgs.center = series.centershapeArgs.ran = ranangle = (shapeArgs.end + shapeArgs.start) / 2point.slicedTranslation = {translateX: round(cos(angle) * seriesOptions.slicedOffset * cos(alpha * deg2rad)), translateY: round(sin(angle) * seriesOptions.slicedOffset * cos(alpha * deg2rad)) }})});(function (H) {H.wrap(HighCharts.SVGRenderer.prototype, 'arc3dPath', function (proceed) {// Run original proceed methodconst ret = proceed.apply(this, [].slice.call(arguments, 1))ret.zTop = (ret.zOut + 0.5) / 100return ret})}(HighCharts))// ⽣成不同⾼度的3d饼图const highEcharts = this.$refs.containerHighCharts.chart(highEcharts, {chart: {type: 'pie',animation: false,backgroundColor: 'rgba(0,0,0,0)',events: {load: function () {const each = HighCharts.eachconst points = this.series[0].pointseach(points, function (p, i) {p.graphic.attr({translateY: -p.shapeArgs.ran})p.graphic.side1.attr({translateY: -p.shapeArgs.ran})p.graphic.side2.attr({translateY: -p.shapeArgs.ran})})}},options3d: {enabled: true,alpha: 65}},title: {show: 'false',text: null},subtitle: {text: null},credits: {enabled: false},legend: { // 【图例】位置样式backgroundColor: 'rgba(0,0,0,0)',shadow: false,layout: 'vertical',align: 'right', // ⽔平⽅向位置verticalAlign: 'top', // 垂直⽅向位置x: 0, // 距离x轴的距离y: 100, // 距离Y轴的距离symbolPadding: 10,symbolHeight: 14,itemStyle: {lineHeight: '24px',fontSize: '16px',color: '#fff'},labelFormatter: function () {/** 格式化函数可⽤的变量:this,可以⽤ console.log(this) 来查看包含的详细信息 * this 代表当前数据列对象,所以默认的实现是 return */return + this.h + '%'}},plotOptions: {pie: {allowPointSelect: true,cursor: 'pointer',depth: 35,innerSize: 180,dataLabels: {enabled: false},// 显⽰图例showInLegend: false}},series: [{type: 'pie',name: '占⽐',// h 是⾼度 y是占的圆环长度colorByPoint: true,colors: [{ // 注意如果是柱状图请使⽤color,如果是⾯积图请使⽤fillColorlinearGradient: {x1: 0,y1: 1,x2: 1,y2: 0},stops: [[0, '#19596d'],[1, '#2ea1b2']]}, { // 注意如果是柱状图请使⽤color,如果是⾯积图请使⽤fillColorlinearGradient: {x1: 0,y1: 1,x2: 1,y2: 0},stops: [[0, '#ee7529'],[1, '#f5a86c']]}, { // 注意如果是柱状图请使⽤color,如果是⾯积图请使⽤fillColorlinearGradient: {x1: 0,y1: 1,x2: 1,y2: 0},stops: [[0, '#f5c055'],[1, '#967b3d']]}, { // 注意如果是柱状图请使⽤color,如果是⾯积图请使⽤fillColorlinearGradient: {x1: 0,y1: 1,x2: 1,y2: 0},stops: [[0, '#2d7bb5'],[1, '#1a5784']]}],data: this.peiData}]})}},components: {}}</script><style scoped lang="less">.com-container{width: 380px;height: 300px;padding-right: 20px;}.big-box{display: flex;background-image: url('../img/dizuo.png');background-repeat: no-repeat;background-position: 25px 144px;padding-top: 20px;}.tulibox{padding-top: 65px;.tuliboxitem{position: relative;margin: 10px 0;.name{font-size: 18px;color: #FEFEFF;padding-right: 20px;}.value{font-size: 22px;color: #0CD2EA;}}.tuliboxitem::before{content: "";position: absolute;width: 16px;height: 16px;top: 7px;border-radius: 50%;left: -33px;}.tuliboxitem:nth-child(1)::before{background-color: #fff600;}.tuliboxitem:nth-child(2)::before{background-color: #209FED;}.tuliboxitem:nth-child(3)::before{background-color: #808EC7;}.tuliboxitem:nth-child(4)::before{background-color: #EE6B26;}}</style>以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
Highcharts 中,使用 pointFormatter 函数来自定义数据点的显示格式
Highcharts 中,使用 pointFormatter 函数来自定义数据点的显示格式在 Highcharts 中,你可以使用 pointFormatter 函数来自定义数据点的显示格式。
pointFormatter 是一个函数,它可以被用于在每个数据点上动态地格式化数据并返回一个字符串,该字符串将被用作数据点的 tooltip 属性的内容。
以下是一个示例函数,演示如何使用 pointFormatter 来格式化数据点的显示内容:tooltip: {pointFormatter: function() {return '<span style="color:' + this.color + '">\u25CF</span> ' + + ': <b>' + this.y + '</b>';}}在上述示例中,pointFormatter 函数用于自定义数据点的显示格式。
它使用了数据点上的this 关键字来访问数据点的属性,如颜色(this.color),系列名称() 和数据值(this.y)。
上述函数的返回值是一个字符串,包含格式化后的数据点内容。
在这个示例中,我们使用颜色占位符和Unicode 字符\u25CF 来显示一个圆点,在圆点后面显示系列名称和数据值。
通过在Highcharts 配置中使用上述 pointFormatter 函数,可以自定义数据点的显示格式,以满足你的需求。
根据具体情况和需求修改 pointFormatter 函数中的代码,并根据需要添加其他数据点属性来定制显示内容。
例如,可以根据数据点的其他属性添加更多的自定义显示内容,或使用 HTML 元素来格式化显示内容的样式。
注意:在使用 pointFormatter 函数时,请确保返回的字符串中的 HTML 字符被正确转义,以防止潜在的安全风险。
highcharts pointformat 写函数
Highcharts PointFormat 写函数中的特定函数1. 简介Highcharts是一个用于创建交互式图表的JavaScript库。
它提供了丰富的选项和配置,可以快速创建各种类型的图表,如线图、柱状图、饼图等。
其中一个重要的配置选项是pointFormat,它定义了数据点的显示格式。
pointFormat是Highcharts中的一个属性,用于自定义数据点的tooltip和数据标签的显示格式。
通过使用pointFormat,我们可以灵活地控制数据点的展示方式,提供更多的信息给用户。
2. 定义pointFormat是一个字符串,可以包含特定的占位符,用于表示数据点的各个属性。
在Highcharts中,每个数据点都具有一组属性,如x、y、name、color等。
通过在pointFormat中使用这些占位符,可以将数据点的属性值动态地插入到字符串中。
3. 用途pointFormat的主要用途是自定义数据点的tooltip和数据标签的显示格式。
数据点的tooltip是当用户将鼠标悬停在数据点上时显示的浮动提示框,数据标签是显示在数据点旁边的标签,用于显示数据点的值。
通过使用pointFormat,我们可以控制tooltip和数据标签的显示内容和样式,以满足特定的需求。
例如,我们可以在tooltip中显示数据点的名称、数值和其他附加信息,或者自定义数据标签的样式,如颜色、字体大小等。
4. 工作方式pointFormat通过占位符来表示数据点的各个属性。
在Highcharts中,常用的占位符有以下几种:•{x}: 数据点的x值。
•{y}: 数据点的y值。
•{}: 数据点所属系列的名称。
•{}: 数据点的名称。
•{point.color}: 数据点的颜色。
•{point.percentage}: 数据点的百分比值(仅适用于饼图等特定类型的图表)。
除了上述常用的占位符外,Highcharts还提供了其他一些占位符,用于表示数据点的其他属性,如{point.startAngle}、{point.endAngle}等。
highchart treegraph用法 -回复
highchart treegraph用法-回复Highcharts是一款强大且灵活的JavaScript图表库,它提供了各种图表类型和交互功能。
其中,Highcharts的TreeGraph(树图)是一种用于可视化层级和分层数据的图形表示方式。
本文将详细介绍Highcharts TreeGraph的用法,涵盖了TreeGraph的基本配置、数据格式及其相关功能。
一、TreeGraph基本配置在开始使用Highcharts TreeGraph之前,需要确保引入了Highcharts 库,可以通过script标签引入CDN或者将Highcharts文件放置在本地。
接下来,我们需要创建一个包含TreeGraph的容器,可以是一个div元素。
接下来,通过Highcharts的options对象来定义TreeGraph的基本配置。
1.1 设置图表类型首先,我们需要在options对象中设置图表类型为treeMap。
代码示例:javascriptchart: {type: 'treeMap'},1.2 设置图表标题在options对象中设置图表的标题,包括标题内容、样式、位置等。
代码示例:javascripttitle: {text: 'TreeGraph Example'},1.3 设置坐标轴TreeGraph可以是一个二维图表,因此我们需要设置坐标轴。
在options 对象中设置xAxis和yAxis属性,包括坐标轴的标签、范围、样式等。
代码示例:javascriptxAxis: {visible: false},yAxis: {visible: false},1.4 设置数据标签TreeGraph支持在图表上显示数据标签,可以在每个节点上显示数值或者其他相关信息。
在options对象中设置dataLabels属性,包括标签内容、样式等。
代码示例:javascriptplotOptions: {series: {dataLabels: {enabled: true,format: '{}',style: {textOutline: 'none'}}}},1.5 设置图例TreeGraph还支持图例,可以用于标识不同节点的含义。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
仪表盘:<script src="/highcharts.js"></script><script src="/highcharts-more.js"></script><div id="container" style="width: 600px; height: 300px; margin: 0 auto"></div> js代码:$(function () {var colors = ['#07FD04','#FFFF00','#FF7805','#FA0100','#9E004F','#790222'] $('#container').highcharts({chart :{renderTo: 'container',type: 'gauge',plotBorderWidth: 1,plotBackgroundColor: {//背景色linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },stops: [[0, '#FFF4C6'],[0.3, '#FFFFFF'],[1, '#FFF4C6']]},plotBackgroundImage: null,//背景图片height: 210},title : {text: '北京市最近24小时空气质量指数趋势(AQI)'},pane : [{startAngle: -90,endAngle: 90,background: null,center: ['45%', '100%'],size: 300}],yAxis : [{// tickLength:0,// minorTickLength:0,min: 0,max: 500,minorTickPosition: 'inside',tickPosition: 'inside',labels: {// enabled:false,rotation: 'auto', distance: 10},plotBands: [{//分区段from: 0,to: 50,color: colors[0], innerRadius: '100%', outerRadius: '65%' },{from: 50,to: 100,color: colors[1], innerRadius: '100%', outerRadius: '65%' },{from: 100,to: 150,color: colors[2], innerRadius: '100%', outerRadius: '65%' },{from: 150,to: 200,color: colors[3], innerRadius: '100%', outerRadius: '65%' },{from: 200,to: 300,color: colors[4], innerRadius: '100%', outerRadius: '65%' },{from: 300,to: 500,color: colors[5], innerRadius: '100%', outerRadius: '65%' }],title: {text: 'AQI',style :{fontSize : '14px',marginTop : '10px'},y: 20}}],exporting :{enabled: true},plotOptions: {gauge: {dataLabels: {enabled: true,y : -20},dial: {//仪表盘指针radius: '80%',rearLength: '0%',backgroundColor: 'silver',borderColor: 'silver',borderWidth: 1,baseWidth: 10,topWidth: 1,baseLength: '30%'}}},tooltip :{formatter: function() {var name = '';if(this.y >= 0 && this.y <=50)name = "优";else if(this.y > 50 && this.y <= 100)name = "良";else if (this.y > 100 && this.y <=150)name = "轻度污染";else if(this.y > 150 && this.y <= 200)name = "中度污染";else if(this.y > 200 && this.y <= 300)name = "重度污染";else if(this.y > 300)name = "严重污染";return '北京市最近24小时空气质量指数趋势(AQI): '+ this.y + ", 空气质量状况:" + name;}},series: [{name : '北京市最近24小时空气质量指数趋势(AQI)',data: [150],yAxis: 0}]});});图形显示:多个Y轴的实现方法在于把yAxis设置成一个数组,里面的一个对象代表一条Y轴,利用opposite:true来表示是否跟默认位置相反,默认Y轴的位置在图形左边,series中通过对每个series设置yAxis来表示使用哪个Y轴,0表示第一个,以此类推。
<script src="/highcharts.js"></script><div id="container" style="height: 400px"></div>画图:$(function () {$('#container').highcharts({xAxis: {categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] },yAxis:[{lineWidth : 1,title:{text :'y1'}},{title:{text :'y2'},lineWidth : 1,opposite:true},{title:{text :'y3'},lineWidth : 1,opposite:true}],series: [{data: [1,2,3,4,5,6,7,8,9],name: 'Right',yAxis:0}, {data: [4,1,5,8,7,10,13,11,11],yAxis:1,name: 'Center'}, {data: [9,10,11,12,13,14,15,16,17], step: 'left',yAxis:2,name: 'Left'}]});});图形:台阶图<script src="/highcharts.js"></script><div id="container" style="height: 400px"></div>$(function () {$('#container').highcharts({title: {text: 'Step line types, with null values in the series'},xAxis: {categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] },series: [{data: [1,2,3,4,5,6,7,8,9],step: 'right',//left,right,center,true,默认falsename: 'Right'}]});});highcharts台阶图(步骤图)(2)多条线<script src="/highcharts.js"></script><div id="container" style="height: 400px"></div>$(function () {$('#container').highcharts({title: {text: 'Step line types, with null values in the series'},xAxis: {categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] },series: [{data: [1,2,3,4,5,6,7,8,9],step: 'right',//left,right,center,true,默认falsename: 'Right'},{data: [3,7,3,9,1,2,5,4,8],color:'red',step: 'right',//left,right,center,true,默认falsename: 'Right'}]如果不想使用UTC时间的话必须设置useUTC为false,如果只是这样还是不起作用,还需要一个步骤,那就是Highcharts.setOptions({global: { useUTC: false }});这样设置的false才会起作用,同时后台传来的时间毫秒值也不加时区,即不使用UTC时间。