`

Jfreechart学习笔记2-简单bar图形创建

阅读更多
package com.langhua.bar;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.io.FileOutputStream;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.DefaultCategoryDataset;
/**
 *  条状测试
 * @author Administrator
 *
 */
public class BarChar {
	private static final long serialVersionUID = 1L;

	public static void main(String[] args) {
		//创建数据
		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
		//数据初始化
		dataset.addValue(1.0, "北京", "苹果");
		dataset.addValue(7.0, "北京", "香蕉");
		dataset.addValue(-3.0, "北京", "桔子");
		dataset.addValue(2.0, "上海", "苹果");
		dataset.addValue(3.0, "上海", "香蕉");
		dataset.addValue(2.0, "上海", "桔子");
		//创建 JFreeChart 对象
		JFreeChart chart = ChartFactory.createBarChart("Bar Chart 例子","水果(X)", "价格(Y)", dataset,PlotOrientation.VERTICAL,true,true,false);
		//配置JFreeChart对象相关信息,如:字体大小,颜色,防止乱码
		BarChar.configFont(chart);
		//输出
		FileOutputStream fos_jpg = null;
		try {
			fos_jpg = new FileOutputStream("c:\\Bar.jpg");
			ChartUtilities.writeChartAsJPEG(fos_jpg,0.99f,chart,800,600,	null);
			fos_jpg.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	private static void configFont(JFreeChart chart) {
		//设置边框宽度
		chart.setBorderStroke(new BasicStroke(1));
		//设置边框是否可见
		chart.setBorderVisible(true);
		//设置边框着色
		chart.setBorderPaint(Color.cyan);		
		//设置背景颜色
		//chart.setBackgroundPaint(Color.YELLOW);		
		// 配置字体
		Font xfont = new Font("宋体", Font.CENTER_BASELINE, 20);// X轴
		Font yfont = new Font("宋体", Font.CENTER_BASELINE, 20);// Y轴
		Font kfont = new Font("宋体", Font.CENTER_BASELINE, 18);// 底部
		Font titleFont = new Font("微软雅黑", Font.CENTER_BASELINE, 25); // 图片标题
		CategoryPlot plot = chart.getCategoryPlot();// 图形的绘制结构对象
		//数据轴网格线条颜色
		plot.setRangeGridlinePaint(Color.BLUE);
		//数据轴网格线条笔触
		plot.setRangeGridlineStroke(new BasicStroke(1.0f));
		// 图片标题
		chart.setTitle(new TextTitle(chart.getTitle().getText(),titleFont));

		// 底部字体样式,防止乱码
		chart.getLegend().setItemFont(kfont);

		//X轴
		CategoryAxis domainAxis = plot.getDomainAxis();
		//设置X轴标题字体
		domainAxis.setLabelFont(xfont);
		//设置X轴字体
		domainAxis.setTickLabelFont(xfont);
		//设置字体颜色
		domainAxis.setTickLabelPaint(Color.BLUE);
		//横轴上的label斜显示
		domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45); 
		//domainAxis.setCategoryLabelPositions(CategoryLabelPositions.DOWN_45);
		//分类轴边距,同种类型之间的距离
		//这是分类之间的距离,和BAR与BAR之间的距离有差别
		//domainAxis.setCategoryMargin(0.2f);
		//分类轴下(左)边距,就是离左边的距离
		domainAxis.setLowerMargin(0.1);
		//分类轴下(右)边距,就是离最右边的距离
		domainAxis.setUpperMargin(0.1);
		
		//Y 轴
		ValueAxis rangeAxis = plot.getRangeAxis();
		//设置Y轴标题字体
		rangeAxis.setLabelFont(yfont);
		//设置Y轴字体
		rangeAxis.setTickLabelFont(yfont);
		// 字体颜色
		rangeAxis.setLabelPaint(Color.RED); 
		//设置Bar的颜色
		BarRenderer renderer = (BarRenderer) plot.getRenderer();
		
		renderer.setSeriesPaint(0, Color.gray);
		renderer.setSeriesPaint(1, Color.orange);
		// 每个BAR之间的间隔
		renderer.setItemMargin(0.0f);
		//每个BAR的最大宽度
		//renderer.setMaximumBarWidth(0.5f);
	}
}

乱码解决的方法
1.重新设置标题的字体和内容
chart.setTitle(new TextTitle(chart.getTitle().getText(),titleFont));

2.重新设置X轴标题字体和刻度字体
//设置X轴标题字体
domainAxis.setLabelFont(xfont);
//设置X轴字体
domainAxis.setTickLabelFont(xfont);

3.重新设置Y轴标题字体和刻度字体
//设置Y轴标题字体
rangeAxis.setLabelFont(yfont);
//设置Y轴字体
rangeAxis.setTickLabelFont(yfont);

4.设置图象最下方,底部的字体
chart.getLegend().setItemFont(kfont);


Bar3D的创建和Bar大部分基本相同,但是创建的时候方法不同
JFreeChart chart = ChartFactory.createBarChart3D("Bar Chart 例子","水果(X)", "价格(Y)", dataset,PlotOrientation.VERTICAL,true,true,false);







  • 大小: 90.9 KB
  • 大小: 100.5 KB
分享到:
评论

相关推荐

    Jfreechart学习笔记3-简单Line图形创建

    在本篇“JFreeChart学习笔记3-简单Line图形创建”中,我们将深入探讨如何使用JFreeChart库在Java环境中创建基本的线性图表。JFreeChart是一个强大的、开源的Java图表库,它允许开发者轻松地生成各种类型的图表,包括...

    Jfreechart学习笔记1-简单Pie图形创建

    **JFreeChart学习笔记1 - 简单Pie图创建** 在Java开发中,我们经常需要展示数据,而饼图(Pie Chart)是一种常见的数据可视化工具,尤其适用于展示各项比例关系。JFreeChart是一个强大的开源Java图表库,它提供了...

    jfreechart1.0.3-demo-src

    2. **图表类型的创建**:JFreeChart 提供了多种图表类型,如 PieChart、BarChart、XYPlot(用于线图和散点图)。每个图表类型都有对应的构造方法,通过传入数据集和图表配置参数来创建。 3. **图表定制**:...

    struts2-jfreechart-plugin-2.1.8.1.jar

    struts2-jfreechart-plugin-2.1.8.1.jar

    struts2-jfreechart-plugin-2.0.11.jar

    struts2-jfreechart-plugin-2.0.11.jarstruts2-jfreechart-plugin-2.0.11.jarstruts2-jfreechart-plugin-2.0.11.jar

    jfreechart,jfreechart-1.0.13,jfreechart-1.0.13,jfreechart

    压缩包中的例子文件是学习JFreeChart的好资源,它们展示了如何创建和定制各种图表。通过分析源代码,开发者可以快速上手,并了解到如何将JFreeChart集成到自己的项目中。 4. **兼容性与性能**: JFreeChart是基于...

    jfreechart-1.0.19

    2. **jfreechart-1.0.19-fx-javadocs.zip**:这是JavaFX版的API文档,包含了JFreeChart在JavaFX环境下的详细接口和类的描述,是开发JavaFX应用时使用JFreeChart的重要参考。 3. **jfreechart-1.0.19.zip**:这是...

    JFreeChart中文api (JFreeChart-1.0.5-Ch.chm)

    JFreeChart中文api (JFreeChart-1.0.5-Ch.chm) JFreeChart中文api (JFreeChart-1.0.5-Ch.chm)

    jfreechart-1.0.19-demo-src

    jfreechart-1.0.19压缩包中有一个jfreechart-1.0.19-demo.jar,里面演示了各种图表的制作案例,包括BarChart、LineChart、PieChart、TimeSeriesChart、XYSeries等等,共309个例子,现开放源码,请各位下载,欢迎交流...

    struts2-jfreechart-plugin-2.0.8.jar

    struts2-jfreechart-plugin-2.0.8.jar

    struts2-jfreechart-plugin-2.1.8.1

    struts2-jfreechart-plugin-2.1.8.1

    jfreechart-1.0.19-Demo-Source 源代码

    - **jFreeChartDemo**: 这是 JFreeChart 的演示程序,包含了各种类型的图表示例,这些示例展示了如何创建和定制图表,是学习 JFreeChart 的绝佳起点。 2. **图表创建** - **ChartFactory**: JFreeChart 提供了一...

    struts2-jfreechart-plugin-2.1.6.jar

    struts2-jfreechart-plugin-2.1.6.jar

    jfreechart-0.9.21 jar包和jfreechart-0.9.21-demo

    jfreechart-0.9.21的jar包和jfreechart-0.9.21-demo

    struts2-jfreechart-plugin-2.3.4.1.jar

    struts2-jfreechart-plugin-2.3.4.1.jar

    jfreechart-1.0.19-demo.src

    5. **示例代码**:“20161128JFreeChart-Demo”可能是一个包含多个示例程序的目录,展示了如何使用JFreeChart库创建各种图表,包括但不限于简单的静态图表、动态更新的图表、自定义颜色和样式等。通过阅读和运行这些...

    jfreechart-1.0.19.jar和jcommon-1.0.23.jar

    JFreeChart目前是最好的java图形解决方案,基本能够解决目前的图形方面的需求,主要包括如下几个方面: pie charts (2D and 3D):饼图(平面和立体) bar charts (regular and stacked, with an optional 3D ...

    JfreeChart的学习--饼形图

    JFreeChart是一个流行的Java库,专门用于创建各种类型的图表,如柱状图、线形图、饼图等。本文将深入探讨如何利用JFreeChart进行饼形图的绘制,并结合提供的标签“源码”和“工具”,分享一些实际的编程实践。 首先...

    jfreechart-1.0.0-pre2-install.pdf

    JFreeChart提供了丰富的示例源码,这些示例覆盖了各种图表类型和应用场景,是学习和使用JFreeChart的重要资源。 ### 结论 JFreeChart是一款功能强大的图表库,适用于Java开发者。无论是简单的数据可视化还是复杂的...

Global site tag (gtag.js) - Google Analytics