`
mryangjw
  • 浏览: 20542 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用JFREECHART绘制重叠的柱状图

阅读更多
以下例子是一个利用JFREECHART绘制重叠柱状图的例子,源码可以直接使用。
*****************************************************************
/**
* 重叠的柱状图
*/

import java.awt.*;
import javax.swing.JPanel;
import org.jfree.chart.*;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.LayeredBarRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
import org.jfree.util.SortOrder;

@SuppressWarnings("serial")
public class LayeredBarChartDemo1 extends ApplicationFrame
{

    public LayeredBarChartDemo1(String s)
    {
        super(s);
        JPanel jpanel = createDemoPanel();
        jpanel.setPreferredSize(new Dimension(500, 270));
        setContentPane(jpanel);
    }

    /**
     * 生成显示图形用的数据集
     * @return
     */
    private static CategoryDataset createDataset()
    {
    // 图例
        String s1 = "One";
        String s2 = "Two";
        String s3 = "Thr";
        // 横坐标分类
        String t1 = "C1";
        String t2 = "C2";
        String t3 = "C3";
        String t4 = "C4";
        String t5 = "C5";
       
        DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
       
        // addValue方法说明:参数1:柱状图显示的量
        //                  参数2:柱子(或图例)标注(一个点显示一个柱子时,只需要一个)
        //                  参数3:横坐标上显示的分类
        defaultcategorydataset.addValue(1D, s1, t1);
        defaultcategorydataset.addValue(3D, s1, t2);
        defaultcategorydataset.addValue(2D, s1, t3);
        defaultcategorydataset.addValue(5D, s1, t4);
        defaultcategorydataset.addValue(8D, s1, t5);
        defaultcategorydataset.addValue(5D, s2, t1);
        defaultcategorydataset.addValue(9D, s2, t2);
        defaultcategorydataset.addValue(6D, s2, t3);
        defaultcategorydataset.addValue(1D, s2, t4);
        defaultcategorydataset.addValue(5D, s2, t5);
        defaultcategorydataset.addValue(8D, s3, t1);
        defaultcategorydataset.addValue(1D, s3, t2);
        defaultcategorydataset.addValue(5D, s3, t3);
        defaultcategorydataset.addValue(2D, s3, t4);
        defaultcategorydataset.addValue(6D, s3, t5);
        return defaultcategorydataset;
    }

    /**
     * 绘制图形,设置参数
     * @param categorydataset
     * @return
     */
    private static JFreeChart createChart(CategoryDataset categorydataset)
    {
    // 生成图形--参数说明
    // 参数1:标题
    // 参数2:分类
    // 参数3:值
    // 参数4:数据集
    // 参数5:柱子的显示方向
    // 参数6:是否显示图例
    // 参数7:暂不知道
    // 参数8:是否显示URL
        JFreeChart jfreechart = ChartFactory.createBarChart("BarImage", "CCC", "Value", categorydataset, PlotOrientation.VERTICAL, true, true, true);
        // 设置背景色
        jfreechart.setBackgroundPaint(Color.lightGray);
        // 设置图形对象
        CategoryPlot categoryplot = (CategoryPlot)jfreechart.getPlot();
        // 设置图形的背景色
        categoryplot.setBackgroundPaint(Color.yellow);
        // 设置图形上竖线的颜色
        categoryplot.setDomainGridlinePaint(Color.black);
        // 设置图形上竖线是否显示
        categoryplot.setDomainGridlinesVisible(true);
        // 设置图形上横线的颜色
        categoryplot.setRangeGridlinePaint(Color.black);
        // 获取横轴
        CategoryAxis categoryAxis = categoryplot.getDomainAxis();
        // 设置横坐标上的分类是否显示
        categoryAxis.setTickLabelsVisible(true);
        // 获取纵轴
        NumberAxis numberaxis = (NumberAxis)categoryplot.getRangeAxis();
        // 设置纵轴的刻度线
        numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
        LayeredBarRenderer layeredbarrenderer = new LayeredBarRenderer();
        layeredbarrenderer.setDrawBarOutline(false);
        // 设置柱子的边框是否显示
        categoryplot.setRenderer(layeredbarrenderer);
        // 设置柱子的排序方式
        categoryplot.setRowRenderingOrder(SortOrder.DESCENDING);
        GradientPaint gradientpaint1 = new GradientPaint(0.0F, 0.0F, Color.black, 0.0F, 0.0F, new Color(0, 0, 64));
        GradientPaint gradientpaint2 = new GradientPaint(0.0F, 0.0F, Color.green, 0.0F, 0.0F, new Color(0, 64, 0));
        GradientPaint gradientpaint3 = new GradientPaint(0.0F, 0.0F, Color.red, 0.0F, 0.0F, new Color(64, 0, 0));
        // 设置柱子的颜色
        layeredbarrenderer.setSeriesPaint(0, gradientpaint1);
        layeredbarrenderer.setSeriesPaint(1, gradientpaint2);
        layeredbarrenderer.setSeriesPaint(2, gradientpaint3);
        return jfreechart;
    }

    public static JPanel createDemoPanel()
    {
        JFreeChart jfreechart = createChart(createDataset());
        return new ChartPanel(jfreechart);
    }

    public static void main(String args[])
    {
        LayeredBarChartDemo1 layeredbarchartdemo1 = new LayeredBarChartDemo1("LayeredBarChart");
        layeredbarchartdemo1.pack();
        RefineryUtilities.centerFrameOnScreen(layeredbarchartdemo1);
        layeredbarchartdemo1.setVisible(true);
    }
}
  • 大小: 14.5 KB
分享到:
评论

相关推荐

    JFreeChart画图 饼状图 单组柱状图 多组柱状图 堆积柱状图 折线图

    JFreeChart 饼状图 柱状图 柱状图 堆积柱状图 折线图 这个是我特地开发的一个用JFreeChart开发的用来画图的项目,已经开发成形了各种项目的各种需求的项目,并且自己可以拓展,根据需求修改代码,完成项目的需要。 ...

    jfreechart 绘制横向立体柱状图

    利用jfreechart绘制的横向立体柱状图,横坐标是数值,纵坐标是数据分类,需要提前引入jfreechart包文件到工程里,才不会报错

    jfreechart 堆栈柱状图跟折线图结合拼接

    jfreechart 堆栈柱状图跟折线图结合拼接 jar包请戳http://download.csdn.net/detail/a156435646/7424707

    jfreechart 生成折线图,饼图,柱状图,堆栈柱状图

    JFreeChart 是一个开源的Java库,用于生成高质量的2D图表,如折线图、饼图、柱状图和堆栈柱状图等。它广泛应用于数据分析、报告和应用程序中,提供丰富的自定义选项来满足各种视觉需求。在本项目中,你将找到能够...

    JFreeChart动态加载柱状图

    JFreeChart创建柱状图,之前网上很多都是创建柱状图的,静态的。数据更新之后柱状图随之改变,代码实现详见附件代码。所需要的jar包是jfreechart-1.0.13.jar,gnujaxp.jar,jcommon-1.0.16.jar

    jfreechart绘制的立体柱状图(正负纵坐标)

    利用jfreechart绘制的立体柱状图,可以实现正负纵坐标显示,需要提前下载jfreechart.jar文件,否则我的类会报错,也即是要配置运行环境

    JFreeChart 折线、柱状组合图

    public JFreeChart createChart(String Ytitle, String title, CategoryDataset lineData, CategoryDataset barData) { //参考附件 return chart; } //struts 部分 <!--begin 维优特例 --> ...

    jfreechart绘制的风速风向玫瑰图

    本文主要介绍如何使用jfreechart绘制风速风向玫瑰图。 首先,了解jfreechart的基本结构。jfreechart的核心是ChartFactory,它提供了许多种类的图表的工厂方法。例如,createPolarChart方法可以创建一个极坐标图。...

    利用JFreeChart 实现柱状图,饼图,时序图,折线图等

    然后,使用`JFreeChart.createBarChart()`方法生成柱状图。 2. **饼图(Pie Chart)** 饼图用于显示整体中各个部分的比例。JFreeChart提供了`PieDataset`接口,用来存储数据,然后通过`JFreeChart.createPieChart...

    jfreechart的使用-柱状图

    **标题:“jfreechart的使用-柱状图”** **描述**:这篇博客文章主要探讨了如何使用jFreeChart库创建柱状图。jFreeChart是Java编程语言中一个广泛使用的开源图表库,它提供了丰富的图表类型,包括柱状图、饼图、...

    java里用JFreeChart画柱状图、折线图、雷达图

    在Java编程环境中,JFreeChart库是一个强大的工具,用于创建各种复杂的图表,包括柱状图、折线图和雷达图。这些图表对于数据可视化和数据分析非常有用,可以帮助开发者直观地展示大量信息。以下是对给定文件中每个...

    jfreechart实现柱状图排序

    根据提供的信息,我们可以总结出以下关于使用 JFreeChart 实现柱状图排序的相关知识点: ### 一、背景介绍 在日常的数据分析与展示工作中,柱状图是非常常见的一种图表类型,它能直观地显示不同类别之间的数值差异...

    java+jfreechart+struts 生成柱状图

    java+jfreechart+struts 生成柱状图 java jfreechart 柱状图 java jfreechart 柱状图 谁需要完整项目可以去http://download.csdn.net/source/2665347

    JfreeChart柱状图饼图

    在Java编程中,JFreeChart库是一个强大的图表绘制工具,它能够帮助开发者创建出多种类型的图表,包括柱状图、饼图等,广泛应用于数据分析和可视化展示。这篇博文中,我们将深入探讨如何使用JFreeChart来创建柱状图和...

    java绘制图表(柱状图、饼图、折线图)包 jfreechart

    你可以创建一个`CategoryDataset`对象,将数据组织成类别和值,然后使用`JFreeChart`的`createBarChart()`方法来生成柱状图。 饼图是另一种常用的数据表示形式,适合显示各部分占整体的比例。JFreeChart允许你创建...

    JFreeChart绘制饼图,折线图,柱状图demo

    JFreeChart是一款强大的Java图表库,它允许开发者在Java应用程序或网页中生成各种高质量的图形,包括饼图、折线图、柱状图等。在本示例中,我们将深入探讨如何利用JFreeChart库来创建这些常见的图表类型。 ### 饼图...

    jfreechart绘制折线图(平面和3D)

    JFreeChart是一款强大的Java图形库,它允许开发者创建多种类型的图表,包括折线图、柱状图、饼图、散点图等。在本主题中,我们将深入探讨如何使用JFreeChart来绘制平面和3D的折线图。 首先,让我们了解折线图的基本...

Global site tag (gtag.js) - Google Analytics