`
hua04104
  • 浏览: 250827 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用JFreeChart创建时间顺序图

阅读更多
package com.cs.jfreechart;

import java.awt.Color;
import java.awt.Font;
import java.io.FileOutputStream;
import java.io.IOException;

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.NumberAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.title.LegendTitle;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.time.Month;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.xy.XYDataset;

public class TimeChartDemo {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		//生成时间顺序图
		JFreeChart chart = ChartFactory.createTimeSeriesChart (
				"图书销售统计表",     //图表标题
				"图书",             //目录轴的显示标签
				"销量",             //数值轴的显示标签
				getDateSet(),      //数据
				//PlotOrientation.HORIZONTAL, //图表方向水平
				//PlotOrientation.VERTICAL,    //图表方向垂直
				true,             //是否显示图例
				false,            //是否显示工具提示
				false             //是否生成URL
		);
		//设置标题及标题字体
		chart.setTitle(new TextTitle("图书销售统计图",new Font("黑体",Font.ITALIC,22)));
		//建一个图例
		LegendTitle legendTitle = chart.getLegend(0);
		//设置图例字体
		legendTitle.setItemFont(new Font("宋体",Font.BOLD,14));
		//获取时间顺序图plot对象
		XYPlot plot = (XYPlot) chart.getPlot();
		//设置柱型的颜色
		plot.getRenderer().setSeriesPaint(0, Color.blue);
		//取得横轴
		ValueAxis categoryAxis = plot.getDomainAxis();
		//设置横轴的字体
		categoryAxis.setLabelFont(new Font("宋体",Font.BOLD,22));
		//设置分类标签以45度倾斜
		//categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
		//设置分类标签字体
		categoryAxis.setTickLabelFont(new Font("宋体",Font.BOLD,22));
		//取得纵轴
		NumberAxis numberAxis = (NumberAxis) plot.getRangeAxis();
		//设置纵轴的字体
		numberAxis.setLabelFont(new Font("宋体",Font.BOLD,22));
		//设置背景透明度(0~1)
		plot.setBackgroundAlpha(0.9f);
		//输出文件
		FileOutputStream fos = new FileOutputStream("book.jpg");
		//用ChartUtilities工具输出
		ChartUtilities.writeChartAsJPEG(fos, chart, 800, 600);
		fos.close();
	}
	
	private static XYDataset getDateSet() {
		//创建一个TimeSeries对象
		TimeSeries spring = new TimeSeries("JAVA教程",Month.class);
		spring.add(new Month(10,2006),34);
		spring.add(new Month(11,2006),27);
		spring.add(new Month(12,2006),31);
		spring.add(new Month(1,2007),17);
		spring.add(new Month(2,2007),39);
		
		TimeSeries lightweight = new TimeSeries("C#教程",Month.class);
		lightweight.add(new Month(10,2006),28);
		lightweight.add(new Month(11,2006),32);
		lightweight.add(new Month(12,2006),11);
		lightweight.add(new Month(1,2007),19);
		lightweight.add(new Month(2,2007),12);
		
		TimeSeriesCollection dataset = new TimeSeriesCollection();
		dataset.addSeries(spring);
		dataset.addSeries(lightweight);
		return dataset;
	}

}

分享到:
评论

相关推荐

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

    在JFreeChart中,`PolarChartDemo1`类提供了一个示例,创建`StandardPolarItemRenderer`渲染器,通过`PolarPlot`和`PolarAxis`设置数据和轴的属性,然后使用`createPolarChart()`方法构建雷达图。 4. **Test.java**...

    JFreeChart 各种图形的 web工程

    JFreeChart的`PieChart`类支持创建饼形图,可以定制每个扇区的颜色、标签和工具提示。`PieDataset`接口用于存储数据,而`PiePlot`类则负责渲染饼图,允许我们调整切片的顺序、大小和动画效果。 **3. 柱状图** 柱状...

    Jfreechart打造专业图表

    JFreeChart支持多种时间单位,如日期、小时、分钟等,并可以添加滚动、缩放等功能,提高交互性。 **6. 二维Y轴坐标图(Dual Y-Axis Chart)** 对于需要在同一图表中比较两个独立数值序列的情况,双Y轴图表非常有用...

    JFreeChartDeveloperGuide

    - **示例:** 展示如何创建时间序列图表,并设置日期轴的格式。 #### 八、自定义图表 **8.1 引言** - **主题:** 介绍如何自定义图表的外观和行为。 **8.2 图表属性** - **内容:** 包括标题、背景色、边框等。 - ...

    jfreechart

    - **时序图(Time Series Chart)**:时序图用于表示按时间顺序的数据,常用于股票市场分析或历史数据可视化。 - **组合图(Combined Chart)**:组合图可以同时展示多种图表类型,如柱形图和折线图的组合,以更...

    struts2结合jfreechart

    JFreeChart则是一个强大的Java库,用于生成各种类型的图表,如柱状图、饼图、时间序列图等,非常适合于数据可视化。在Struts2中集成JFreeChart,可以让我们在Web应用中方便地展示动态生成的数据。 **1. JFreeChart...

    jfreechart-1.0.1-US_developer_guide

    JFreeChart的时间序列图表可以自动识别时间戳,并按时间顺序排列数据点,方便进行趋势分析。 #### 9. 图表定制 ##### 9.1 属性定制 通过设置图表、绘图区域、坐标轴等组件的属性,实现对图表外观和行为的深度控制...

    gantt图的简单做法示例精典

    4. 使用`JFreeChart`的`createGanttChart()`方法创建Gantt图,传入数据集和图表标题。 5. 最后,将图表显示在`JFrame`或保存为图像文件。 在实际应用中,你可能还需要考虑一些高级特性,如任务的进度更新、资源分配...

    仿真算法实现TSP问题之----模拟退火算法(Java版)

    - 实现图形化显示功能,如使用JFreeChart创建图表,显示每个城市的位置和最终路径。 **JFreeChart应用** JFreeChart是一个开源的Java库,提供了丰富的图表类型,包括折线图、柱状图和饼图等。在本例中,我们可以...

    jChart使用帮助中文版本

    - 时间序列图(TimeSeriesChart):适用于按时间顺序展示数据变化。 ### 7. 进阶功能 除了基础功能外,jChart还支持多轴、图例、工具提示、缩放、平移等高级特性。例如,可以添加图例: ```java chart.addLegend...

    基于java的图书馆管理系统

    在Java中,可以为每本书添加一个预约队列,按照时间顺序处理预约请求。当图书被归还时,系统会检查预约队列并通知下一个预约者。 此外,系统还需要提供报表和统计功能,如借阅排行榜、读者借阅频率等。这通常涉及...

    详细教授编写TM管理系统

    任务创建与分配涉及到数据的增删改查操作,可以利用Java的持久化技术,如JDBC(Java Database Connectivity)来与数据库交互,或者使用ORM(Object-Relational Mapping)框架如Hibernate或MyBatis,简化数据库操作。...

    音乐播放器——湘潭大学JAVA课程设计题目

    使用Swing或JavaFX等图形用户界面库可以创建进度条组件。 4. **示波器波形图显示**:示波器波形图能直观地展示音乐的音频信号。这通常通过读取音频数据并进行傅立叶变换来实现,然后将结果显示在图形界面上。可能...

    Disk_patch:操作系统课设--模拟操作系统的磁盘调度

    JFreeChart是一个强大的开源Java库,可以生成各种图表,包括线图、饼图、柱状图等,非常适合用来表示数据变化和动态过程,如磁盘调度中的磁头移动轨迹。 【标签解析】:“Java” 标签“Java”表明该项目使用Java...

    中式复杂报表解决方案PPT演示版

    1. **使用Java报表库**:Java报表库如JFreeChart、iText和Apache POI等,可以帮助我们处理复杂的表格和图表生成。这些库提供了丰富的API,可以自定义样式和布局,满足多样的报表需求。 2. **Web报表框架**:利用Web...

Global site tag (gtag.js) - Google Analytics