import java.awt.Color;
import java.awt.Dimension;
import java.awt.Paint;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.labels.ItemLabelAnchor;
import org.jfree.chart.labels.ItemLabelPosition;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer3D;
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.ui.TextAnchor;
public class BarChartDemo1 extends ApplicationFrame {
static class CustomBarRenderer3D extends BarRenderer3D {
public Paint getItemPaint(int i, int j) {
CategoryDataset categorydataset = getPlot().getDataset();
double d = categorydataset.getValue(i, j).doubleValue();
if (d >= 0.69999999999999996D)
return Color.green;
else
return Color.red;
}
public CustomBarRenderer3D() {
}
}
public BarChartDemo1(String s) {
super(s);
CategoryDataset categorydataset = createDataset();
JFreeChart jfreechart = createChart(categorydataset);
ChartPanel chartpanel = new ChartPanel(jfreechart);
chartpanel.setPreferredSize(new Dimension(500, 270));
setContentPane(chartpanel);
}
private static CategoryDataset createDataset() {
DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
defaultcategorydataset.addValue(0.77000000000000002D, "Series 1",
"Robert");
defaultcategorydataset.addValue(0.93000000000000005D, "Series 2",
"Robert");// +"Mary"
defaultcategorydataset.addValue(0.58999999999999997D, "Series 1",
"John");
defaultcategorydataset.addValue(0.75D, "Series 1", "Ellen");
defaultcategorydataset.addValue(0.63D, "Series 1", "Jack");
defaultcategorydataset.addValue(0.94999999999999996D, "Series 1",
"David");
defaultcategorydataset.addValue(0.70999999999999996D, "Series 1",
"Mark");
defaultcategorydataset.addValue(0.65000000000000002D, "Series 1",
"Andy");
return defaultcategorydataset;
}
private static JFreeChart createChart(CategoryDataset categorydataset) {
JFreeChart jfreechart = ChartFactory.createBarChart3D("Student Grades",
"Students", "Grade", categorydataset, PlotOrientation.VERTICAL,
false, true, false);
CategoryPlot categoryplot = (CategoryPlot) jfreechart.getPlot();
CustomBarRenderer3D custombarrenderer3d = new CustomBarRenderer3D();
DecimalFormat df = new DecimalFormat("0.00%");
custombarrenderer3d
.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator(
"{2}", df));
custombarrenderer3d.setItemLabelAnchorOffset(10D);
custombarrenderer3d
.setBasePositiveItemLabelPosition(new ItemLabelPosition(
ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));
categoryplot.setRenderer(custombarrenderer3d);
custombarrenderer3d.setBaseItemLabelsVisible(true);
custombarrenderer3d.setMaximumBarWidth(0.050000000000000003D);
NumberAxis numberaxis = (NumberAxis) categoryplot.getRangeAxis();
numberaxis.setNumberFormatOverride(NumberFormat.getPercentInstance());
numberaxis.setUpperMargin(0.10000000000000001D);
return jfreechart;
}
public static JPanel createDemoPanel() {
JFreeChart jfreechart = createChart(createDataset());
return new ChartPanel(jfreechart);
}
public static void main(String args[]) {
BarChartDemo1 barchart3ddemo4 = new BarChartDemo1("3D Bar Chart Demo 1");
barchart3ddemo4.pack();
RefineryUtilities.centerFrameOnScreen(barchart3ddemo4);
barchart3ddemo4.setVisible(true);
}
}
2013年8月23日 14:33
相关推荐
利用jfreechart绘制的横向立体柱状图,横坐标是数值,纵坐标是数据分类,需要提前引入jfreechart包文件到工程里,才不会报错
Java 使用 JFreeChart 创建柱形图是一种常见的数据可视化方法,尤其在数据分析和Web应用程序中。JFreeChart 是一个强大的开源库,它提供了多种图表类型,包括柱形图、饼图、线图等,使得开发者能够方便地将数据转化...
jfreechart 堆栈柱状图跟折线图结合拼接 jar包请戳http://download.csdn.net/detail/a156435646/7424707
综上所述,自定义JFreeChart柱状图涉及了数据准备、渲染器配置、外观调整、标签和提示信息等多个方面。通过深入理解这些知识点,开发者可以创建出满足各种需求的个性化柱状图。提供的文件如"JFreeChart中柱状图的...
Java中的JFreeChart库是一个强大的工具,用于生成各种类型的图表,包括柱状图、饼状图和折线图。在本教程中,我们将深入探讨如何使用JFreeChart创建这些图表,以及如何用随机生成的数据作为数据源。 首先,...
JFreeChart 饼状图 柱状图 柱状图 堆积柱状图 折线图 这个是我特地开发的一个用JFreeChart开发的用来画图的项目,已经开发成形了各种项目的各种需求的项目,并且自己可以拓展,根据需求修改代码,完成项目的需要。 ...
public JFreeChart createChart(String Ytitle, String title, CategoryDataset lineData, CategoryDataset barData) { //参考附件 return chart; } //struts 部分 <!--begin 维优特例 --> ...
JFreeChart创建柱状图,之前网上很多都是创建柱状图的,静态的。数据更新之后柱状图随之改变,代码实现详见附件代码。所需要的jar包是jfreechart-1.0.13.jar,gnujaxp.jar,jcommon-1.0.16.jar
根据提供的信息,我们可以总结出以下关于使用 JFreeChart 实现柱状图排序的相关知识点: ### 一、背景介绍 在日常的数据分析与展示工作中,柱状图是非常常见的一种图表类型,它能直观地显示不同类别之间的数值差异...
**JFreeChart——柱状图与饼图详解** 在Java编程中,JFreeChart库是一个强大的图表绘制工具,它能够帮助开发者创建出多种类型的图表,包括柱状图、饼图等,广泛应用于数据分析和可视化展示。这篇博文中,我们将深入...
java+jfreechart+struts 生成柱状图 java jfreechart 柱状图 java jfreechart 柱状图 谁需要完整项目可以去http://download.csdn.net/source/2665347
JFreeChart是一个流行的Java库,用于生成各种类型的图表,包括折线图、饼图和柱状图,甚至堆栈柱状图。这个压缩包中的"CreateChartServiceImpl.java"文件很可能包含了一个实现这些功能的服务类。 首先,我们要理解...
当我们需要创建一个柱状图,并且希望在同一组数据中,每根柱子显示不同的颜色时,JFreeChart提供了灵活的配置方式来实现这一需求。下面我们将详细探讨如何利用JFreeChart让单组柱子显示不同的颜色。 首先,我们需要...
JFreeChart是一款强大的Java图形库,它为开发者提供了丰富的图表类型,包括柱状图、曲线图和饼图等,使得在Java应用中展示数据变得更加直观和美观。在本篇文章中,我们将深入探讨如何利用JFreeChart来创建这些图表,...
**JFreeChart 柱状图** JFreeChart 是一个流行的开源 Java 图形库,它提供了丰富的图表类型,包括柱状图、饼图、线图、散点图等,广泛应用于数据分析、报告生成以及可视化应用中。这个压缩包提供的源代码示例,展示...
创建柱状图需要几个步骤:首先,你需要创建一个`CategoryDataset`对象,存储你要显示的数据;然后,用`CategoryPlot`作为图表的主要部分,设置X轴和Y轴;接着,使用`CategoryAxis`和`ValueAxis`定义轴的标签和范围...
JFreeChart 是一个广泛使用的开源 Java 图形库,它允许开发人员轻松地创建各种图表,包括折线图、饼图和柱状图。这个库为 Java 应用程序提供了丰富的图表功能,适用于数据可视化的需求,无论是简单的报告还是复杂的...