关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » JavaScript »jCharts:Java图表类库使用介绍

    jCharts:Java图表类库使用介绍

    2014-10-22 00:00:00 出处:ITJS
    分享

    jCharts是一款基于Java的图表绘制类库,jCharts包含了多种图表格式,包括线型图、饼图、柱形图和点图等。

    jCharts的特点

    100%基于Java,继承其跨平台的特性。 图表中的文字,包括x轴和y轴上的文字,均可以设置字体。 图表数据构造非常简单。

    jCharts使用案例

    柱形图绘制

    完整的Java代码:

    package com.jiuxing.mobile;  
    
    import java.awt.Color;  
    import java.awt.Font;  
    import java.awt.Paint;  
    import java.io.IOException;  
    
    import javax.servlet.ServletException;  
    import javax.servlet.http.HttpServlet;  
    import javax.servlet.http.HttpServletRequest;  
    import javax.servlet.http.HttpServletResponse;  
    
    import org.krysalis.jcharts.axisChart.AxisChart;  
    import org.krysalis.jcharts.axisChart.customRenderers.axisValue.renderers.ValueLabelPosition;  
    import org.krysalis.jcharts.axisChart.customRenderers.axisValue.renderers.ValueLabelRenderer;  
    import org.krysalis.jcharts.chartData.AxisChartDataSet;  
    import org.krysalis.jcharts.chartData.DataSeries;  
    import org.krysalis.jcharts.chartData.interfaces.IAxisDataSeries;  
    import org.krysalis.jcharts.encoders.ServletEncoderHelper;  
    import org.krysalis.jcharts.properties.AxisProperties;  
    import org.krysalis.jcharts.properties.BarChartProperties;  
    import org.krysalis.jcharts.properties.ChartProperties;  
    import org.krysalis.jcharts.properties.DataAxisProperties;  
    import org.krysalis.jcharts.properties.LegendProperties;  
    import org.krysalis.jcharts.properties.PropertyException;  
    import org.krysalis.jcharts.properties.util.ChartFont;  
    import org.krysalis.jcharts.types.ChartType;  
    
    public class BarChartServlet extends HttpServlet {  
        // ---all of my charts serviced by this Servlet will have the same properties.  
        private BarChartProperties barChartProperties;  
    
        // ---all of my charts serviced by this Servlet will have the same properties.  
        protected LegendProperties legendProperties;  
        protected AxisProperties axisProperties;  
        protected ChartProperties chartProperties;  
    
        protected int width = 950;  
        protected int height = 360;  
    
        /********************************************************************************************** 
         * 
         **********************************************************************************************/  
        public void init() {  
        this.legendProperties = new LegendProperties();  
        this.chartProperties = new ChartProperties();  
        // 图形的XY轴的属性对象  
        this.axisProperties = new AxisProperties(false);  
        // 图表横坐标和纵坐标范围的字体,大小,颜色设置对象  
        ChartFont axisScaleFont = new ChartFont(new Font(  
            "Georgia Negreta cursiva", Font.PLAIN, 13), new Color(18, 189,  
            255));  
        axisProperties.getXAxisProperties().setScaleChartFont(axisScaleFont);  
        axisProperties.getYAxisProperties().setScaleChartFont(axisScaleFont);  
        // Bar图形的横坐标和纵坐标的标题字体和颜色 ,大小的设置对象  
        ChartFont axisTitleFont = new ChartFont(new Font("Arial Narrow",  
            Font.PLAIN, 14), new Color(18, 189, 255));  
        axisProperties.getXAxisProperties().setTitleChartFont(axisTitleFont);  
        axisProperties.getXAxisProperties().setShowEndBorder(false);  
        axisProperties.getYAxisProperties().setTitleChartFont(axisTitleFont);  
        axisProperties.getYAxisProperties().setShowEndBorder(false);  
        DataAxisProperties dataAxisProperties = (DataAxisProperties) axisProperties  
            .getYAxisProperties();  
    
        try {  
            // 设置用户定义的纵轴纵坐标的 间隔范围  
            dataAxisProperties.setUserDefinedScale(0, 3000);  
        } catch (PropertyException propertyException) {  
            propertyException.printStackTrace();  
        }  
    
        dataAxisProperties.setRoundToNearest(3);  
        // 设置图形标题的字体,颜色,大小  
        ChartFont titleFont = new ChartFont(new Font("Georgia Negreta cursiva",  
            Font.PLAIN, 14), new Color(18, 189, 255));  
        // 生成图像的属性对象  
        this.chartProperties.setTitleFont(titleFont);  
        // Bar图形的属性类  
        this.barChartProperties = new BarChartProperties();  
    
        ValueLabelRenderer valueLabelRenderer = new ValueLabelRenderer(false,  
            false, true, -1);  
        valueLabelRenderer.setValueLabelPosition(ValueLabelPosition.ON_TOP);  
        // 是否设置显示的纵坐标标签垂直,true为是,flase为水平  
        valueLabelRenderer.useVerticalLabels(true);  
        barChartProperties.addPostRenderEventListener(valueLabelRenderer);  
    
        }  
    
        /********************************************************************************************** 
         * 
         **********************************************************************************************/  
        public void service(HttpServletRequest req,  
            HttpServletResponse httpServletResponse) throws ServletException,  
            IOException {  
        try {  
            // 设置横坐标标签  
            String[] xAxisLabels = { "1995", "1996", "1997", "1998", "1999",  
                "2000", "2001", "2002", "2003", "2004", "2005", "2006",  
                "2007", "2008", "2009", "2010", "2011", "2012", "2013",  
                "2014" };  
            // 设置横坐标的单位  
            String xAxisTitle = "Years";  
            // 设置纵坐标的标题  
            String yAxisTitle = "Problems";  
            // 设置图形的标题  
            String title = "Micro$oft At Work";  
            // 图形所需要的数据对象  
            IAxisDataSeries dataSeries = new DataSeries(xAxisLabels,  
                xAxisTitle, yAxisTitle, title);  
    
            // 设置条形数据  
            double[][] data = new double[][] { { 1500, 6880, 4510, 2600, 0,  
                1580, 0, 9555, 11000, 0, 7500, 5880, 3510, 2600,  
                1200, 1580, 9000, 8555, 9000, 3120 } };  
            // 条形区域 形示的标签  
            String[] legendLabels = { "8" };  
    //      String[] legendLabels = null;  
            // 条形区域绘制的颜色设置对象  
            Paint[] paints = new Paint[] { new Color(18, 189, 255) };  
            dataSeries.addIAxisPlotDataSet(new AxisChartDataSet(data,  
                legendLabels, paints, ChartType.BAR,  
                this.barChartProperties));  
    
            // 产生一个 chart对象  
            AxisChart axisChart = new AxisChart(dataSeries,  
                this.chartProperties, this.axisProperties,  
                this.legendProperties, this.width, this.height);  
            // 输出设置好的chart图形  
            ServletEncoderHelper.encodeJPEG13(axisChart, 1.0f,  
                httpServletResponse);  
        } catch (Throwable throwable) {  
            // HACK do your error handling here...  
            throwable.printStackTrace();  
        }  
        }  
    }

    效果图如下:

    总体来说,jCharts可以完成基本的图表绘制,并可以自己扩展代码来完成更高级的图表和报表功能。

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    Destoon 模板存放规则及语法参考

    Destoon系统常量与变量

    Destoon系统目录文件结构说明

    Destoon 系统安装指南

    Destoon会员公司主页模板风格添加方法

    Destoon 二次开发入门

    Microsoft 将于 2026 年 10 月终止对 Windows 11 SE 的支持

    Windows 11 存储感知如何设置?了解Windows 11 存储感知开启的好处

    Windows 11 24H2 更新灾难:系统升级了,SSD固态盘不见了...

    小米路由器买哪款?Miwifi热门路由器型号对比分析

    IT头条

    Synology 对 Office 套件进行重大 AI 更新,增强私有云的生产力和安全性

    01:43

    StorONE 的高效平台将 Storage Guardian 数据中心占用空间减少 80%

    11:03

    年赚千亿的印度能源巨头Nayara 云服务瘫痪,被微软卡了一下脖子

    12:54

    国产6nm GPU新突破!砺算科技官宣:自研TrueGPU架构7月26日发布

    01:57

    公安部:我国在售汽车搭载的“智驾”系统都不具备“自动驾驶”功能

    02:03

    技术热点

    如何删除自带的不常用应用为windows 7减负

    MySQL中多表删除方法

    改进的二值图像像素标记算法及程序实现

    windows 7 32位系统下手动修改磁盘属性例如M盘修改为F盘

    windows 7中怎么样在家庭组互传文件

    Linux应用集成MySQL数据库访问技巧

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。